From 3289a7275a26cacadf14d250dcf2abf130a2da3a Mon Sep 17 00:00:00 2001 From: Ichitux Date: Tue, 7 Apr 2026 16:41:13 +0200 Subject: [PATCH] primer commit --- .claude/settings.local.json | 7 + .env | 16 + README.md | 91 + data/messages.db | Bin 0 -> 94208 bytes node_modules/.bin/mime | 1 + node_modules/.package-lock.json | 1184 + node_modules/@discordjs/builders/LICENSE | 191 + node_modules/@discordjs/builders/README.md | 73 + .../@discordjs/builders/dist/index.d.mts | 16374 ++ .../@discordjs/builders/dist/index.d.ts | 16374 ++ .../@discordjs/builders/dist/index.js | 4834 + .../@discordjs/builders/dist/index.js.map | 1 + .../@discordjs/builders/dist/index.mjs | 4756 + .../@discordjs/builders/dist/index.mjs.map | 1 + node_modules/@discordjs/builders/package.json | 99 + .../@discordjs/collection/CHANGELOG.md | 190 + node_modules/@discordjs/collection/LICENSE | 191 + node_modules/@discordjs/collection/README.md | 67 + .../@discordjs/collection/dist/index.d.mts | 457 + .../@discordjs/collection/dist/index.d.ts | 457 + .../@discordjs/collection/dist/index.js | 543 + .../@discordjs/collection/dist/index.js.map | 1 + .../@discordjs/collection/dist/index.mjs | 517 + .../@discordjs/collection/dist/index.mjs.map | 1 + .../@discordjs/collection/package.json | 76 + node_modules/@discordjs/formatters/LICENSE | 191 + node_modules/@discordjs/formatters/README.md | 83 + .../@discordjs/formatters/dist/index.d.mts | 739 + .../@discordjs/formatters/dist/index.d.ts | 739 + .../@discordjs/formatters/dist/index.js | 519 + .../@discordjs/formatters/dist/index.js.map | 1 + .../@discordjs/formatters/dist/index.mjs | 449 + .../@discordjs/formatters/dist/index.mjs.map | 1 + .../@discordjs/formatters/package.json | 83 + node_modules/@discordjs/rest/LICENSE | 192 + node_modules/@discordjs/rest/README.md | 138 + node_modules/@discordjs/rest/dist/index.d.mts | 958 + node_modules/@discordjs/rest/dist/index.d.ts | 958 + node_modules/@discordjs/rest/dist/index.js | 1515 + .../@discordjs/rest/dist/index.js.map | 1 + node_modules/@discordjs/rest/dist/index.mjs | 1473 + .../@discordjs/rest/dist/index.mjs.map | 1 + .../rest/dist/strategies/undiciRequest.d.mts | 13 + .../rest/dist/strategies/undiciRequest.d.ts | 13 + .../rest/dist/strategies/undiciRequest.js | 94 + .../rest/dist/strategies/undiciRequest.js.map | 1 + .../rest/dist/strategies/undiciRequest.mjs | 70 + .../dist/strategies/undiciRequest.mjs.map | 1 + node_modules/@discordjs/rest/dist/web.d.mts | 958 + node_modules/@discordjs/rest/dist/web.d.ts | 958 + node_modules/@discordjs/rest/dist/web.js | 1447 + node_modules/@discordjs/rest/dist/web.js.map | 1 + node_modules/@discordjs/rest/dist/web.mjs | 1403 + node_modules/@discordjs/rest/dist/web.mjs.map | 1 + .../@discordjs/collection/LICENSE | 191 + .../@discordjs/collection/README.md | 67 + .../@discordjs/collection/dist/index.d.mts | 537 + .../@discordjs/collection/dist/index.d.ts | 537 + .../@discordjs/collection/dist/index.js | 567 + .../@discordjs/collection/dist/index.js.map | 1 + .../@discordjs/collection/dist/index.mjs | 541 + .../@discordjs/collection/dist/index.mjs.map | 1 + .../@discordjs/collection/package.json | 86 + .../@sapphire/snowflake/CHANGELOG.md | 328 + .../@sapphire/snowflake/README.md | 169 + .../@sapphire/snowflake/dist/cjs/index.cjs | 203 + .../snowflake/dist/cjs/index.cjs.map | 1 + .../@sapphire/snowflake/dist/cjs/index.d.cts | 212 + .../@sapphire/snowflake/dist/esm/index.d.mts | 212 + .../@sapphire/snowflake/dist/esm/index.mjs | 196 + .../snowflake/dist/esm/index.mjs.map | 1 + .../snowflake/dist/iife/index.global.js | 208 + .../snowflake/dist/iife/index.global.js.map | 1 + .../@sapphire/snowflake/package.json | 74 + node_modules/@discordjs/rest/package.json | 119 + node_modules/@discordjs/util/LICENSE | 190 + node_modules/@discordjs/util/README.md | 66 + node_modules/@discordjs/util/dist/index.d.mts | 166 + node_modules/@discordjs/util/dist/index.d.ts | 166 + node_modules/@discordjs/util/dist/index.js | 159 + .../@discordjs/util/dist/index.js.map | 1 + node_modules/@discordjs/util/dist/index.mjs | 125 + .../@discordjs/util/dist/index.mjs.map | 1 + node_modules/@discordjs/util/package.json | 94 + node_modules/@discordjs/ws/LICENSE | 191 + node_modules/@discordjs/ws/README.md | 204 + .../@discordjs/ws/dist/defaultWorker.d.mts | 2 + .../@discordjs/ws/dist/defaultWorker.d.ts | 2 + .../@discordjs/ws/dist/defaultWorker.js | 1057 + .../@discordjs/ws/dist/defaultWorker.js.map | 1 + .../@discordjs/ws/dist/defaultWorker.mjs | 1039 + .../@discordjs/ws/dist/defaultWorker.mjs.map | 1 + node_modules/@discordjs/ws/dist/index.d.mts | 705 + node_modules/@discordjs/ws/dist/index.d.ts | 705 + node_modules/@discordjs/ws/dist/index.js | 1506 + node_modules/@discordjs/ws/dist/index.js.map | 1 + node_modules/@discordjs/ws/dist/index.mjs | 1468 + node_modules/@discordjs/ws/dist/index.mjs.map | 1 + .../@discordjs/collection/LICENSE | 191 + .../@discordjs/collection/README.md | 67 + .../@discordjs/collection/dist/index.d.mts | 537 + .../@discordjs/collection/dist/index.d.ts | 537 + .../@discordjs/collection/dist/index.js | 567 + .../@discordjs/collection/dist/index.js.map | 1 + .../@discordjs/collection/dist/index.mjs | 541 + .../@discordjs/collection/dist/index.mjs.map | 1 + .../@discordjs/collection/package.json | 86 + node_modules/@discordjs/ws/package.json | 113 + .../@sapphire/async-queue/CHANGELOG.md | 211 + node_modules/@sapphire/async-queue/README.md | 96 + .../@sapphire/async-queue/dist/cjs/index.cjs | 137 + .../async-queue/dist/cjs/index.cjs.map | 1 + .../async-queue/dist/cjs/index.d.cts | 55 + .../async-queue/dist/esm/index.d.mts | 55 + .../@sapphire/async-queue/dist/esm/index.mjs | 135 + .../async-queue/dist/esm/index.mjs.map | 1 + .../async-queue/dist/iife/index.global.js | 142 + .../async-queue/dist/iife/index.global.js.map | 1 + .../@sapphire/async-queue/package.json | 74 + .../@sapphire/shapeshift/CHANGELOG.md | 464 + node_modules/@sapphire/shapeshift/LICENSE.md | 24 + node_modules/@sapphire/shapeshift/README.md | 934 + .../@sapphire/shapeshift/UPGRADING-v3-v4.md | 211 + .../@sapphire/shapeshift/dist/cjs/index.cjs | 3210 + .../shapeshift/dist/cjs/index.cjs.map | 1 + .../@sapphire/shapeshift/dist/cjs/index.d.cts | 722 + .../@sapphire/shapeshift/dist/esm/index.d.mts | 722 + .../@sapphire/shapeshift/dist/esm/index.mjs | 3187 + .../shapeshift/dist/esm/index.mjs.map | 1 + .../shapeshift/dist/iife/index.global.js | 4417 + .../shapeshift/dist/iife/index.global.js.map | 1 + .../@sapphire/shapeshift/package.json | 125 + node_modules/@sapphire/snowflake/CHANGELOG.md | 312 + node_modules/@sapphire/snowflake/README.md | 170 + .../@sapphire/snowflake/dist/cjs/index.cjs | 194 + .../snowflake/dist/cjs/index.cjs.map | 1 + .../@sapphire/snowflake/dist/cjs/index.d.cts | 202 + .../@sapphire/snowflake/dist/esm/index.d.mts | 202 + .../@sapphire/snowflake/dist/esm/index.mjs | 187 + .../snowflake/dist/esm/index.mjs.map | 1 + .../snowflake/dist/iife/index.global.js | 199 + .../snowflake/dist/iife/index.global.js.map | 1 + node_modules/@sapphire/snowflake/package.json | 72 + node_modules/@types/node/LICENSE | 21 + node_modules/@types/node/README.md | 15 + node_modules/@types/node/assert.d.ts | 955 + node_modules/@types/node/assert/strict.d.ts | 105 + node_modules/@types/node/async_hooks.d.ts | 623 + node_modules/@types/node/buffer.buffer.d.ts | 466 + node_modules/@types/node/buffer.d.ts | 1810 + node_modules/@types/node/child_process.d.ts | 1433 + node_modules/@types/node/cluster.d.ts | 486 + .../@types/node/compatibility/iterators.d.ts | 21 + node_modules/@types/node/console.d.ts | 151 + node_modules/@types/node/constants.d.ts | 20 + node_modules/@types/node/crypto.d.ts | 4065 + node_modules/@types/node/dgram.d.ts | 564 + .../@types/node/diagnostics_channel.d.ts | 576 + node_modules/@types/node/dns.d.ts | 922 + node_modules/@types/node/dns/promises.d.ts | 503 + node_modules/@types/node/domain.d.ts | 166 + node_modules/@types/node/events.d.ts | 1047 + node_modules/@types/node/fs.d.ts | 4678 + node_modules/@types/node/fs/promises.d.ts | 1329 + node_modules/@types/node/globals.d.ts | 150 + .../@types/node/globals.typedarray.d.ts | 101 + node_modules/@types/node/http.d.ts | 2188 + node_modules/@types/node/http2.d.ts | 2480 + node_modules/@types/node/https.d.ts | 405 + node_modules/@types/node/index.d.ts | 115 + node_modules/@types/node/inspector.d.ts | 269 + .../@types/node/inspector.generated.d.ts | 4401 + .../@types/node/inspector/promises.d.ts | 41 + node_modules/@types/node/module.d.ts | 757 + node_modules/@types/node/net.d.ts | 952 + node_modules/@types/node/os.d.ts | 507 + node_modules/@types/node/package.json | 155 + node_modules/@types/node/path.d.ts | 187 + node_modules/@types/node/path/posix.d.ts | 8 + node_modules/@types/node/path/win32.d.ts | 8 + node_modules/@types/node/perf_hooks.d.ts | 643 + node_modules/@types/node/process.d.ts | 2175 + node_modules/@types/node/punycode.d.ts | 117 + node_modules/@types/node/querystring.d.ts | 152 + node_modules/@types/node/quic.d.ts | 910 + node_modules/@types/node/readline.d.ts | 542 + .../@types/node/readline/promises.d.ts | 161 + node_modules/@types/node/repl.d.ts | 415 + node_modules/@types/node/sea.d.ts | 162 + node_modules/@types/node/sqlite.d.ts | 1065 + node_modules/@types/node/stream.d.ts | 1793 + .../@types/node/stream/consumers.d.ts | 38 + node_modules/@types/node/stream/promises.d.ts | 211 + node_modules/@types/node/stream/web.d.ts | 296 + node_modules/@types/node/string_decoder.d.ts | 67 + node_modules/@types/node/test.d.ts | 2275 + node_modules/@types/node/test/reporters.d.ts | 96 + node_modules/@types/node/timers.d.ts | 159 + node_modules/@types/node/timers/promises.d.ts | 108 + node_modules/@types/node/tls.d.ts | 1203 + node_modules/@types/node/trace_events.d.ts | 197 + .../@types/node/ts5.6/buffer.buffer.d.ts | 462 + .../ts5.6/compatibility/float16array.d.ts | 71 + .../@types/node/ts5.6/globals.typedarray.d.ts | 36 + node_modules/@types/node/ts5.6/index.d.ts | 117 + .../ts5.7/compatibility/float16array.d.ts | 72 + node_modules/@types/node/ts5.7/index.d.ts | 117 + node_modules/@types/node/tty.d.ts | 250 + node_modules/@types/node/url.d.ts | 541 + node_modules/@types/node/util.d.ts | 1687 + node_modules/@types/node/util/types.d.ts | 558 + node_modules/@types/node/v8.d.ts | 988 + node_modules/@types/node/vm.d.ts | 1208 + node_modules/@types/node/wasi.d.ts | 202 + .../node/web-globals/abortcontroller.d.ts | 59 + .../@types/node/web-globals/blob.d.ts | 23 + .../@types/node/web-globals/console.d.ts | 9 + .../@types/node/web-globals/crypto.d.ts | 39 + .../@types/node/web-globals/domexception.d.ts | 68 + .../@types/node/web-globals/encoding.d.ts | 11 + .../@types/node/web-globals/events.d.ts | 106 + .../@types/node/web-globals/fetch.d.ts | 69 + .../@types/node/web-globals/importmeta.d.ts | 13 + .../@types/node/web-globals/messaging.d.ts | 23 + .../@types/node/web-globals/navigator.d.ts | 25 + .../@types/node/web-globals/performance.d.ts | 45 + .../@types/node/web-globals/storage.d.ts | 24 + .../@types/node/web-globals/streams.d.ts | 115 + .../@types/node/web-globals/timers.d.ts | 44 + node_modules/@types/node/web-globals/url.d.ts | 24 + node_modules/@types/node/worker_threads.d.ts | 717 + node_modules/@types/node/zlib.d.ts | 682 + node_modules/@types/ws/LICENSE | 21 + node_modules/@types/ws/README.md | 15 + node_modules/@types/ws/index.d.mts | 451 + node_modules/@types/ws/index.d.ts | 445 + node_modules/@types/ws/package.json | 72 + .../async_event_emitter/CHANGELOG.md | 117 + .../async_event_emitter/LICENSE.md | 24 + .../@vladfrangu/async_event_emitter/README.md | 51 + .../THIRD_PARTY_LICENSE.md | 23 + .../async_event_emitter/dist/index.cjs | 2825 + .../async_event_emitter/dist/index.cjs.map | 1 + .../async_event_emitter/dist/index.d.mts | 78 + .../async_event_emitter/dist/index.d.ts | 78 + .../async_event_emitter/dist/index.global.js | 2815 + .../dist/index.global.js.map | 1 + .../async_event_emitter/dist/index.mjs | 2803 + .../async_event_emitter/dist/index.mjs.map | 1 + .../async_event_emitter/package.json | 112 + node_modules/accepts/HISTORY.md | 243 + node_modules/accepts/LICENSE | 23 + node_modules/accepts/README.md | 140 + node_modules/accepts/index.js | 238 + node_modules/accepts/package.json | 47 + node_modules/array-flatten/LICENSE | 21 + node_modules/array-flatten/README.md | 43 + node_modules/array-flatten/array-flatten.js | 64 + node_modules/array-flatten/package.json | 39 + node_modules/body-parser/HISTORY.md | 680 + node_modules/body-parser/LICENSE | 23 + node_modules/body-parser/README.md | 476 + node_modules/body-parser/index.js | 156 + node_modules/body-parser/lib/read.js | 205 + node_modules/body-parser/lib/types/json.js | 247 + node_modules/body-parser/lib/types/raw.js | 101 + node_modules/body-parser/lib/types/text.js | 121 + .../body-parser/lib/types/urlencoded.js | 300 + node_modules/body-parser/package.json | 55 + node_modules/bytes/History.md | 97 + node_modules/bytes/LICENSE | 23 + node_modules/bytes/Readme.md | 152 + node_modules/bytes/index.js | 170 + node_modules/bytes/package.json | 42 + .../call-bind-apply-helpers/.eslintrc | 17 + .../.github/FUNDING.yml | 12 + node_modules/call-bind-apply-helpers/.nycrc | 9 + .../call-bind-apply-helpers/CHANGELOG.md | 30 + node_modules/call-bind-apply-helpers/LICENSE | 21 + .../call-bind-apply-helpers/README.md | 62 + .../call-bind-apply-helpers/actualApply.d.ts | 1 + .../call-bind-apply-helpers/actualApply.js | 10 + .../call-bind-apply-helpers/applyBind.d.ts | 19 + .../call-bind-apply-helpers/applyBind.js | 10 + .../functionApply.d.ts | 1 + .../call-bind-apply-helpers/functionApply.js | 4 + .../call-bind-apply-helpers/functionCall.d.ts | 1 + .../call-bind-apply-helpers/functionCall.js | 4 + .../call-bind-apply-helpers/index.d.ts | 64 + node_modules/call-bind-apply-helpers/index.js | 15 + .../call-bind-apply-helpers/package.json | 85 + .../call-bind-apply-helpers/reflectApply.d.ts | 3 + .../call-bind-apply-helpers/reflectApply.js | 4 + .../call-bind-apply-helpers/test/index.js | 63 + .../call-bind-apply-helpers/tsconfig.json | 9 + node_modules/call-bound/.eslintrc | 13 + node_modules/call-bound/.github/FUNDING.yml | 12 + node_modules/call-bound/.nycrc | 9 + node_modules/call-bound/CHANGELOG.md | 42 + node_modules/call-bound/LICENSE | 21 + node_modules/call-bound/README.md | 53 + node_modules/call-bound/index.d.ts | 94 + node_modules/call-bound/index.js | 19 + node_modules/call-bound/package.json | 99 + node_modules/call-bound/test/index.js | 61 + node_modules/call-bound/tsconfig.json | 10 + node_modules/content-disposition/HISTORY.md | 60 + node_modules/content-disposition/LICENSE | 22 + node_modules/content-disposition/README.md | 142 + node_modules/content-disposition/index.js | 458 + node_modules/content-disposition/package.json | 44 + node_modules/content-type/HISTORY.md | 29 + node_modules/content-type/LICENSE | 22 + node_modules/content-type/README.md | 94 + node_modules/content-type/index.js | 225 + node_modules/content-type/package.json | 42 + node_modules/cookie-signature/History.md | 42 + node_modules/cookie-signature/Readme.md | 42 + node_modules/cookie-signature/index.js | 51 + node_modules/cookie-signature/package.json | 18 + node_modules/cookie/LICENSE | 24 + node_modules/cookie/README.md | 317 + node_modules/cookie/SECURITY.md | 25 + node_modules/cookie/index.js | 335 + node_modules/cookie/package.json | 44 + node_modules/debug/.coveralls.yml | 1 + node_modules/debug/.eslintrc | 11 + node_modules/debug/.npmignore | 9 + node_modules/debug/.travis.yml | 14 + node_modules/debug/CHANGELOG.md | 362 + node_modules/debug/LICENSE | 19 + node_modules/debug/Makefile | 50 + node_modules/debug/README.md | 312 + node_modules/debug/component.json | 19 + node_modules/debug/karma.conf.js | 70 + node_modules/debug/node.js | 1 + node_modules/debug/package.json | 49 + node_modules/debug/src/browser.js | 185 + node_modules/debug/src/debug.js | 202 + node_modules/debug/src/index.js | 10 + node_modules/debug/src/inspector-log.js | 15 + node_modules/debug/src/node.js | 248 + node_modules/depd/History.md | 103 + node_modules/depd/LICENSE | 22 + node_modules/depd/Readme.md | 280 + node_modules/depd/index.js | 538 + node_modules/depd/lib/browser/index.js | 77 + node_modules/depd/package.json | 45 + node_modules/destroy/LICENSE | 23 + node_modules/destroy/README.md | 63 + node_modules/destroy/index.js | 209 + node_modules/destroy/package.json | 48 + node_modules/discord-api-types/CHANGELOG.md | 2409 + node_modules/discord-api-types/LICENSE | 21 + node_modules/discord-api-types/README.md | 102 + .../_generated_/rest/v10/interfaces.d.ts | 906 + .../_generated_/rest/v10/interfaces.d.ts.map | 1 + .../_generated_/rest/v10/interfaces.js | 3 + .../_generated_/rest/v10/interfaces.js.map | 1 + .../_generated_/rest/v9/interfaces.d.ts | 908 + .../_generated_/rest/v9/interfaces.d.ts.map | 1 + .../_generated_/rest/v9/interfaces.js | 3 + .../_generated_/rest/v9/interfaces.js.map | 1 + .../discord-api-types/gateway/common.d.ts | 9 + .../discord-api-types/gateway/common.d.ts.map | 1 + .../discord-api-types/gateway/common.js | 3 + .../discord-api-types/gateway/common.js.map | 1 + .../discord-api-types/gateway/index.d.ts | 2 + .../discord-api-types/gateway/index.d.ts.map | 1 + .../discord-api-types/gateway/index.js | 20 + .../discord-api-types/gateway/index.js.map | 1 + .../discord-api-types/gateway/index.mjs | 9 + .../discord-api-types/gateway/v10.d.ts | 2054 + .../discord-api-types/gateway/v10.d.ts.map | 1 + node_modules/discord-api-types/gateway/v10.js | 277 + .../discord-api-types/gateway/v10.js.map | 1 + .../discord-api-types/gateway/v10.mjs | 9 + .../discord-api-types/gateway/v6.d.ts | 658 + .../discord-api-types/gateway/v6.d.ts.map | 1 + node_modules/discord-api-types/gateway/v6.js | 158 + .../discord-api-types/gateway/v6.js.map | 1 + node_modules/discord-api-types/gateway/v6.mjs | 10 + .../discord-api-types/gateway/v8.d.ts | 1575 + .../discord-api-types/gateway/v8.d.ts.map | 1 + node_modules/discord-api-types/gateway/v8.js | 231 + .../discord-api-types/gateway/v8.js.map | 1 + node_modules/discord-api-types/gateway/v8.mjs | 8 + .../discord-api-types/gateway/v9.d.ts | 2053 + .../discord-api-types/gateway/v9.d.ts.map | 1 + node_modules/discord-api-types/gateway/v9.js | 276 + .../discord-api-types/gateway/v9.js.map | 1 + node_modules/discord-api-types/gateway/v9.mjs | 9 + node_modules/discord-api-types/globals.d.ts | 102 + .../discord-api-types/globals.d.ts.map | 1 + node_modules/discord-api-types/globals.js | 105 + node_modules/discord-api-types/globals.js.map | 1 + node_modules/discord-api-types/globals.mjs | 4 + node_modules/discord-api-types/package.json | 215 + .../discord-api-types/payloads/common.d.ts | 344 + .../payloads/common.d.ts.map | 1 + .../discord-api-types/payloads/common.js | 310 + .../discord-api-types/payloads/common.js.map | 1 + .../discord-api-types/payloads/index.d.ts | 2 + .../discord-api-types/payloads/index.d.ts.map | 1 + .../discord-api-types/payloads/index.js | 20 + .../discord-api-types/payloads/index.js.map | 1 + .../discord-api-types/payloads/index.mjs | 98 + .../_chatInput/attachment.d.ts | 6 + .../_chatInput/attachment.d.ts.map | 1 + .../_chatInput/attachment.js | 3 + .../_chatInput/attachment.js.map | 1 + .../_applicationCommands/_chatInput/base.d.ts | 23 + .../_chatInput/base.d.ts.map | 1 + .../_applicationCommands/_chatInput/base.js | 3 + .../_chatInput/base.js.map | 1 + .../_chatInput/boolean.d.ts | 5 + .../_chatInput/boolean.d.ts.map | 1 + .../_chatInput/boolean.js | 3 + .../_chatInput/boolean.js.map | 1 + .../_chatInput/channel.d.ts | 9 + .../_chatInput/channel.d.ts.map | 1 + .../_chatInput/channel.js | 3 + .../_chatInput/channel.js.map | 1 + .../_chatInput/integer.d.ts | 18 + .../_chatInput/integer.d.ts.map | 1 + .../_chatInput/integer.js | 3 + .../_chatInput/integer.js.map | 1 + .../_chatInput/mentionable.d.ts | 6 + .../_chatInput/mentionable.d.ts.map | 1 + .../_chatInput/mentionable.js | 3 + .../_chatInput/mentionable.js.map | 1 + .../_chatInput/number.d.ts | 18 + .../_chatInput/number.d.ts.map | 1 + .../_applicationCommands/_chatInput/number.js | 3 + .../_chatInput/number.js.map | 1 + .../_applicationCommands/_chatInput/role.d.ts | 6 + .../_chatInput/role.d.ts.map | 1 + .../_applicationCommands/_chatInput/role.js | 3 + .../_chatInput/role.js.map | 1 + .../_chatInput/shared.d.ts | 26 + .../_chatInput/shared.d.ts.map | 1 + .../_applicationCommands/_chatInput/shared.js | 21 + .../_chatInput/shared.js.map | 1 + .../_chatInput/string.d.ts | 17 + .../_chatInput/string.d.ts.map | 1 + .../_applicationCommands/_chatInput/string.js | 3 + .../_chatInput/string.js.map | 1 + .../_chatInput/subcommand.d.ts | 13 + .../_chatInput/subcommand.d.ts.map | 1 + .../_chatInput/subcommand.js | 3 + .../_chatInput/subcommand.js.map | 1 + .../_chatInput/subcommandGroup.d.ts | 13 + .../_chatInput/subcommandGroup.d.ts.map | 1 + .../_chatInput/subcommandGroup.js | 3 + .../_chatInput/subcommandGroup.js.map | 1 + .../_applicationCommands/_chatInput/user.d.ts | 6 + .../_chatInput/user.d.ts.map | 1 + .../_applicationCommands/_chatInput/user.js | 3 + .../_chatInput/user.js.map | 1 + .../_applicationCommands/chatInput.d.ts | 68 + .../_applicationCommands/chatInput.d.ts.map | 1 + .../_applicationCommands/chatInput.js | 18 + .../_applicationCommands/chatInput.js.map | 1 + .../_applicationCommands/contextMenu.d.ts | 66 + .../_applicationCommands/contextMenu.d.ts.map | 1 + .../_applicationCommands/contextMenu.js | 3 + .../_applicationCommands/contextMenu.js.map | 1 + .../_applicationCommands/entryPoint.d.ts | 20 + .../_applicationCommands/entryPoint.d.ts.map | 1 + .../_applicationCommands/entryPoint.js | 3 + .../_applicationCommands/entryPoint.js.map | 1 + .../_applicationCommands/internals.d.ts | 9 + .../_applicationCommands/internals.d.ts.map | 1 + .../_applicationCommands/internals.js | 3 + .../_applicationCommands/internals.js.map | 1 + .../_applicationCommands/permissions.d.ts | 55 + .../_applicationCommands/permissions.d.ts.map | 1 + .../_applicationCommands/permissions.js | 21 + .../_applicationCommands/permissions.js.map | 1 + .../_interactions/applicationCommands.d.ts | 194 + .../applicationCommands.d.ts.map | 1 + .../v10/_interactions/applicationCommands.js | 89 + .../_interactions/applicationCommands.js.map | 1 + .../v10/_interactions/autocomplete.d.ts | 11 + .../v10/_interactions/autocomplete.d.ts.map | 1 + .../v10/_interactions/autocomplete.js | 3 + .../v10/_interactions/autocomplete.js.map | 1 + .../payloads/v10/_interactions/base.d.ts | 230 + .../payloads/v10/_interactions/base.d.ts.map | 1 + .../payloads/v10/_interactions/base.js | 3 + .../payloads/v10/_interactions/base.js.map | 1 + .../v10/_interactions/messageComponents.d.ts | 42 + .../_interactions/messageComponents.d.ts.map | 1 + .../v10/_interactions/messageComponents.js | 3 + .../_interactions/messageComponents.js.map | 1 + .../v10/_interactions/modalSubmit.d.ts | 77 + .../v10/_interactions/modalSubmit.d.ts.map | 1 + .../payloads/v10/_interactions/modalSubmit.js | 3 + .../v10/_interactions/modalSubmit.js.map | 1 + .../payloads/v10/_interactions/ping.d.ts | 4 + .../payloads/v10/_interactions/ping.d.ts.map | 1 + .../payloads/v10/_interactions/ping.js | 3 + .../payloads/v10/_interactions/ping.js.map | 1 + .../payloads/v10/_interactions/responses.d.ts | 124 + .../v10/_interactions/responses.d.ts.map | 1 + .../payloads/v10/_interactions/responses.js | 63 + .../v10/_interactions/responses.js.map | 1 + .../payloads/v10/application.d.ts | 387 + .../payloads/v10/application.d.ts.map | 1 + .../payloads/v10/application.js | 152 + .../payloads/v10/application.js.map | 1 + .../payloads/v10/auditLog.d.ts | 694 + .../payloads/v10/auditLog.d.ts.map | 1 + .../payloads/v10/auditLog.js | 85 + .../payloads/v10/auditLog.js.map | 1 + .../payloads/v10/autoModeration.d.ts | 222 + .../payloads/v10/autoModeration.d.ts.map | 1 + .../payloads/v10/autoModeration.js | 88 + .../payloads/v10/autoModeration.js.map | 1 + .../payloads/v10/channel.d.ts | 653 + .../payloads/v10/channel.d.ts.map | 1 + .../discord-api-types/payloads/v10/channel.js | 219 + .../payloads/v10/channel.js.map | 1 + .../discord-api-types/payloads/v10/emoji.d.ts | 79 + .../payloads/v10/emoji.d.ts.map | 1 + .../discord-api-types/payloads/v10/emoji.js | 6 + .../payloads/v10/emoji.js.map | 1 + .../payloads/v10/gateway.d.ts | 456 + .../payloads/v10/gateway.d.ts.map | 1 + .../discord-api-types/payloads/v10/gateway.js | 103 + .../payloads/v10/gateway.js.map | 1 + .../discord-api-types/payloads/v10/guild.d.ts | 1223 + .../payloads/v10/guild.d.ts.map | 1 + .../discord-api-types/payloads/v10/guild.js | 403 + .../payloads/v10/guild.js.map | 1 + .../payloads/v10/guildScheduledEvent.d.ts | 244 + .../payloads/v10/guildScheduledEvent.d.ts.map | 1 + .../payloads/v10/guildScheduledEvent.js | 74 + .../payloads/v10/guildScheduledEvent.js.map | 1 + .../discord-api-types/payloads/v10/index.d.ts | 25 + .../payloads/v10/index.d.ts.map | 1 + .../discord-api-types/payloads/v10/index.js | 37 + .../payloads/v10/index.js.map | 1 + .../discord-api-types/payloads/v10/index.mjs | 98 + .../payloads/v10/interactions.d.ts | 25 + .../payloads/v10/interactions.d.ts.map | 1 + .../payloads/v10/interactions.js | 19 + .../payloads/v10/interactions.js.map | 1 + .../payloads/v10/invite.d.ts | 132 + .../payloads/v10/invite.d.ts.map | 1 + .../discord-api-types/payloads/v10/invite.js | 31 + .../payloads/v10/invite.js.map | 1 + .../payloads/v10/message.d.ts | 2005 + .../payloads/v10/message.d.ts.map | 1 + .../discord-api-types/payloads/v10/message.js | 537 + .../payloads/v10/message.js.map | 1 + .../payloads/v10/monetization.d.ts | 216 + .../payloads/v10/monetization.d.ts.map | 1 + .../payloads/v10/monetization.js | 101 + .../payloads/v10/monetization.js.map | 1 + .../payloads/v10/oauth2.d.ts | 144 + .../payloads/v10/oauth2.d.ts.map | 1 + .../discord-api-types/payloads/v10/oauth2.js | 148 + .../payloads/v10/oauth2.js.map | 1 + .../payloads/v10/permissions.d.ts | 124 + .../payloads/v10/permissions.d.ts.map | 1 + .../payloads/v10/permissions.js | 17 + .../payloads/v10/permissions.js.map | 1 + .../discord-api-types/payloads/v10/poll.d.ts | 111 + .../payloads/v10/poll.d.ts.map | 1 + .../discord-api-types/payloads/v10/poll.js | 17 + .../payloads/v10/poll.js.map | 1 + .../payloads/v10/soundboard.d.ts | 43 + .../payloads/v10/soundboard.d.ts.map | 1 + .../payloads/v10/soundboard.js | 6 + .../payloads/v10/soundboard.js.map | 1 + .../payloads/v10/stageInstance.d.ts | 82 + .../payloads/v10/stageInstance.d.ts.map | 1 + .../payloads/v10/stageInstance.js | 21 + .../payloads/v10/stageInstance.js.map | 1 + .../payloads/v10/sticker.d.ts | 125 + .../payloads/v10/sticker.d.ts.map | 1 + .../discord-api-types/payloads/v10/sticker.js | 31 + .../payloads/v10/sticker.js.map | 1 + .../discord-api-types/payloads/v10/teams.d.ts | 79 + .../payloads/v10/teams.d.ts.map | 1 + .../discord-api-types/payloads/v10/teams.js | 24 + .../payloads/v10/teams.js.map | 1 + .../payloads/v10/template.d.ts | 64 + .../payloads/v10/template.d.ts.map | 1 + .../payloads/v10/template.js | 6 + .../payloads/v10/template.js.map | 1 + .../discord-api-types/payloads/v10/user.d.ts | 428 + .../payloads/v10/user.d.ts.map | 1 + .../discord-api-types/payloads/v10/user.js | 189 + .../payloads/v10/user.js.map | 1 + .../discord-api-types/payloads/v10/voice.d.ts | 101 + .../payloads/v10/voice.d.ts.map | 1 + .../discord-api-types/payloads/v10/voice.js | 6 + .../payloads/v10/voice.js.map | 1 + .../payloads/v10/webhook.d.ts | 190 + .../payloads/v10/webhook.d.ts.map | 1 + .../discord-api-types/payloads/v10/webhook.js | 69 + .../payloads/v10/webhook.js.map | 1 + .../payloads/v6/auditLog.d.ts | 469 + .../payloads/v6/auditLog.d.ts.map | 1 + .../discord-api-types/payloads/v6/auditLog.js | 58 + .../payloads/v6/auditLog.js.map | 1 + .../payloads/v6/channel.d.ts | 339 + .../payloads/v6/channel.d.ts.map | 1 + .../discord-api-types/payloads/v6/channel.js | 94 + .../payloads/v6/channel.js.map | 1 + .../discord-api-types/payloads/v6/emoji.d.ts | 27 + .../payloads/v6/emoji.d.ts.map | 1 + .../discord-api-types/payloads/v6/emoji.js | 6 + .../payloads/v6/emoji.js.map | 1 + .../payloads/v6/gateway.d.ts | 149 + .../payloads/v6/gateway.d.ts.map | 1 + .../discord-api-types/payloads/v6/gateway.js | 45 + .../payloads/v6/gateway.js.map | 1 + .../discord-api-types/payloads/v6/guild.d.ts | 310 + .../payloads/v6/guild.d.ts.map | 1 + .../discord-api-types/payloads/v6/guild.js | 118 + .../payloads/v6/guild.js.map | 1 + .../discord-api-types/payloads/v6/index.d.ts | 13 + .../payloads/v6/index.d.ts.map | 1 + .../discord-api-types/payloads/v6/index.js | 29 + .../payloads/v6/index.js.map | 1 + .../discord-api-types/payloads/v6/index.mjs | 30 + .../discord-api-types/payloads/v6/invite.d.ts | 42 + .../payloads/v6/invite.d.ts.map | 1 + .../discord-api-types/payloads/v6/invite.js | 16 + .../payloads/v6/invite.js.map | 1 + .../discord-api-types/payloads/v6/oauth2.d.ts | 28 + .../payloads/v6/oauth2.d.ts.map | 1 + .../discord-api-types/payloads/v6/oauth2.js | 6 + .../payloads/v6/oauth2.js.map | 1 + .../payloads/v6/permissions.d.ts | 75 + .../payloads/v6/permissions.d.ts.map | 1 + .../payloads/v6/permissions.js | 56 + .../payloads/v6/permissions.js.map | 1 + .../discord-api-types/payloads/v6/teams.d.ts | 36 + .../payloads/v6/teams.d.ts.map | 1 + .../discord-api-types/payloads/v6/teams.js | 17 + .../payloads/v6/teams.js.map | 1 + .../discord-api-types/payloads/v6/user.d.ts | 79 + .../payloads/v6/user.d.ts.map | 1 + .../discord-api-types/payloads/v6/user.js | 48 + .../discord-api-types/payloads/v6/user.js.map | 1 + .../discord-api-types/payloads/v6/voice.d.ts | 37 + .../payloads/v6/voice.d.ts.map | 1 + .../discord-api-types/payloads/v6/voice.js | 6 + .../payloads/v6/voice.js.map | 1 + .../payloads/v6/webhook.d.ts | 32 + .../payloads/v6/webhook.d.ts.map | 1 + .../discord-api-types/payloads/v6/webhook.js | 15 + .../payloads/v6/webhook.js.map | 1 + .../_chatInput/attachment.d.ts | 12 + .../_chatInput/attachment.d.ts.map | 1 + .../_chatInput/attachment.js | 3 + .../_chatInput/attachment.js.map | 1 + .../_applicationCommands/_chatInput/base.d.ts | 28 + .../_chatInput/base.d.ts.map | 1 + .../_applicationCommands/_chatInput/base.js | 3 + .../_chatInput/base.js.map | 1 + .../_chatInput/boolean.d.ts | 11 + .../_chatInput/boolean.d.ts.map | 1 + .../_chatInput/boolean.js | 3 + .../_chatInput/boolean.js.map | 1 + .../_chatInput/channel.d.ts | 15 + .../_chatInput/channel.d.ts.map | 1 + .../_chatInput/channel.js | 3 + .../_chatInput/channel.js.map | 1 + .../_chatInput/integer.d.ts | 27 + .../_chatInput/integer.d.ts.map | 1 + .../_chatInput/integer.js | 3 + .../_chatInput/integer.js.map | 1 + .../_chatInput/mentionable.d.ts | 12 + .../_chatInput/mentionable.d.ts.map | 1 + .../_chatInput/mentionable.js | 3 + .../_chatInput/mentionable.js.map | 1 + .../_chatInput/number.d.ts | 27 + .../_chatInput/number.d.ts.map | 1 + .../_applicationCommands/_chatInput/number.js | 3 + .../_chatInput/number.js.map | 1 + .../_applicationCommands/_chatInput/role.d.ts | 12 + .../_chatInput/role.d.ts.map | 1 + .../_applicationCommands/_chatInput/role.js | 3 + .../_chatInput/role.js.map | 1 + .../_chatInput/shared.d.ts | 28 + .../_chatInput/shared.d.ts.map | 1 + .../_applicationCommands/_chatInput/shared.js | 23 + .../_chatInput/shared.js.map | 1 + .../_chatInput/string.d.ts | 13 + .../_chatInput/string.d.ts.map | 1 + .../_applicationCommands/_chatInput/string.js | 3 + .../_chatInput/string.js.map | 1 + .../_chatInput/subcommand.d.ts | 18 + .../_chatInput/subcommand.d.ts.map | 1 + .../_chatInput/subcommand.js | 3 + .../_chatInput/subcommand.js.map | 1 + .../_chatInput/subcommandGroup.d.ts | 18 + .../_chatInput/subcommandGroup.d.ts.map | 1 + .../_chatInput/subcommandGroup.js | 3 + .../_chatInput/subcommandGroup.js.map | 1 + .../_applicationCommands/_chatInput/user.d.ts | 12 + .../_chatInput/user.d.ts.map | 1 + .../_applicationCommands/_chatInput/user.js | 3 + .../_chatInput/user.js.map | 1 + .../_applicationCommands/chatInput.d.ts | 90 + .../_applicationCommands/chatInput.d.ts.map | 1 + .../_applicationCommands/chatInput.js | 29 + .../_applicationCommands/chatInput.js.map | 1 + .../_applicationCommands/contextMenu.d.ts | 102 + .../_applicationCommands/contextMenu.d.ts.map | 1 + .../_applicationCommands/contextMenu.js | 3 + .../_applicationCommands/contextMenu.js.map | 1 + .../_applicationCommands/internals.d.ts | 11 + .../_applicationCommands/internals.d.ts.map | 1 + .../_applicationCommands/internals.js | 3 + .../_applicationCommands/internals.js.map | 1 + .../_applicationCommands/permissions.d.ts | 53 + .../_applicationCommands/permissions.d.ts.map | 1 + .../_applicationCommands/permissions.js | 14 + .../_applicationCommands/permissions.js.map | 1 + .../v8/_interactions/applicationCommands.d.ts | 112 + .../applicationCommands.d.ts.map | 1 + .../v8/_interactions/applicationCommands.js | 32 + .../_interactions/applicationCommands.js.map | 1 + .../v8/_interactions/autocomplete.d.ts | 18 + .../v8/_interactions/autocomplete.d.ts.map | 1 + .../payloads/v8/_interactions/autocomplete.js | 3 + .../v8/_interactions/autocomplete.js.map | 1 + .../payloads/v8/_interactions/base.d.ts | 116 + .../payloads/v8/_interactions/base.d.ts.map | 1 + .../payloads/v8/_interactions/base.js | 3 + .../payloads/v8/_interactions/base.js.map | 1 + .../v8/_interactions/messageComponents.d.ts | 43 + .../_interactions/messageComponents.d.ts.map | 1 + .../v8/_interactions/messageComponents.js | 3 + .../v8/_interactions/messageComponents.js.map | 1 + .../v8/_interactions/modalSubmit.d.ts | 48 + .../v8/_interactions/modalSubmit.d.ts.map | 1 + .../payloads/v8/_interactions/modalSubmit.js | 3 + .../v8/_interactions/modalSubmit.js.map | 1 + .../payloads/v8/_interactions/ping.d.ts | 7 + .../payloads/v8/_interactions/ping.d.ts.map | 1 + .../payloads/v8/_interactions/ping.js | 3 + .../payloads/v8/_interactions/ping.js.map | 1 + .../payloads/v8/_interactions/responses.d.ts | 138 + .../v8/_interactions/responses.d.ts.map | 1 + .../payloads/v8/_interactions/responses.js | 53 + .../v8/_interactions/responses.js.map | 1 + .../payloads/v8/application.d.ts | 134 + .../payloads/v8/application.d.ts.map | 1 + .../payloads/v8/application.js | 28 + .../payloads/v8/application.js.map | 1 + .../payloads/v8/auditLog.d.ts | 637 + .../payloads/v8/auditLog.d.ts.map | 1 + .../discord-api-types/payloads/v8/auditLog.js | 67 + .../payloads/v8/auditLog.js.map | 1 + .../payloads/v8/channel.d.ts | 1268 + .../payloads/v8/channel.d.ts.map | 1 + .../discord-api-types/payloads/v8/channel.js | 253 + .../payloads/v8/channel.js.map | 1 + .../discord-api-types/payloads/v8/emoji.d.ts | 53 + .../payloads/v8/emoji.d.ts.map | 1 + .../discord-api-types/payloads/v8/emoji.js | 6 + .../payloads/v8/emoji.js.map | 1 + .../payloads/v8/gateway.d.ts | 332 + .../payloads/v8/gateway.d.ts.map | 1 + .../discord-api-types/payloads/v8/gateway.js | 79 + .../payloads/v8/gateway.js.map | 1 + .../discord-api-types/payloads/v8/guild.d.ts | 1001 + .../payloads/v8/guild.d.ts.map | 1 + .../discord-api-types/payloads/v8/guild.js | 264 + .../payloads/v8/guild.js.map | 1 + .../payloads/v8/guildScheduledEvent.d.ts | 163 + .../payloads/v8/guildScheduledEvent.d.ts.map | 1 + .../payloads/v8/guildScheduledEvent.js | 39 + .../payloads/v8/guildScheduledEvent.js.map | 1 + .../discord-api-types/payloads/v8/index.d.ts | 20 + .../payloads/v8/index.d.ts.map | 1 + .../discord-api-types/payloads/v8/index.js | 36 + .../payloads/v8/index.js.map | 1 + .../discord-api-types/payloads/v8/index.mjs | 51 + .../payloads/v8/interactions.d.ts | 31 + .../payloads/v8/interactions.d.ts.map | 1 + .../payloads/v8/interactions.js | 24 + .../payloads/v8/interactions.js.map | 1 + .../discord-api-types/payloads/v8/invite.d.ts | 114 + .../payloads/v8/invite.d.ts.map | 1 + .../discord-api-types/payloads/v8/invite.js | 17 + .../payloads/v8/invite.js.map | 1 + .../discord-api-types/payloads/v8/oauth2.d.ts | 117 + .../payloads/v8/oauth2.d.ts.map | 1 + .../discord-api-types/payloads/v8/oauth2.js | 121 + .../payloads/v8/oauth2.js.map | 1 + .../payloads/v8/permissions.d.ts | 77 + .../payloads/v8/permissions.d.ts.map | 1 + .../payloads/v8/permissions.js | 6 + .../payloads/v8/permissions.js.map | 1 + .../payloads/v8/stageInstance.d.ts | 76 + .../payloads/v8/stageInstance.d.ts.map | 1 + .../payloads/v8/stageInstance.js | 20 + .../payloads/v8/stageInstance.js.map | 1 + .../payloads/v8/sticker.d.ts | 133 + .../payloads/v8/sticker.d.ts.map | 1 + .../discord-api-types/payloads/v8/sticker.js | 34 + .../payloads/v8/sticker.js.map | 1 + .../discord-api-types/payloads/v8/teams.d.ts | 69 + .../payloads/v8/teams.d.ts.map | 1 + .../discord-api-types/payloads/v8/teams.js | 17 + .../payloads/v8/teams.js.map | 1 + .../payloads/v8/template.d.ts | 68 + .../payloads/v8/template.d.ts.map | 1 + .../discord-api-types/payloads/v8/template.js | 6 + .../payloads/v8/template.js.map | 1 + .../discord-api-types/payloads/v8/user.d.ts | 228 + .../payloads/v8/user.d.ts.map | 1 + .../discord-api-types/payloads/v8/user.js | 108 + .../discord-api-types/payloads/v8/user.js.map | 1 + .../discord-api-types/payloads/v8/voice.d.ts | 94 + .../payloads/v8/voice.d.ts.map | 1 + .../discord-api-types/payloads/v8/voice.js | 6 + .../payloads/v8/voice.js.map | 1 + .../payloads/v8/webhook.d.ts | 82 + .../payloads/v8/webhook.d.ts.map | 1 + .../discord-api-types/payloads/v8/webhook.js | 25 + .../payloads/v8/webhook.js.map | 1 + .../_chatInput/attachment.d.ts | 6 + .../_chatInput/attachment.d.ts.map | 1 + .../_chatInput/attachment.js | 3 + .../_chatInput/attachment.js.map | 1 + .../_applicationCommands/_chatInput/base.d.ts | 23 + .../_chatInput/base.d.ts.map | 1 + .../_applicationCommands/_chatInput/base.js | 3 + .../_chatInput/base.js.map | 1 + .../_chatInput/boolean.d.ts | 5 + .../_chatInput/boolean.d.ts.map | 1 + .../_chatInput/boolean.js | 3 + .../_chatInput/boolean.js.map | 1 + .../_chatInput/channel.d.ts | 9 + .../_chatInput/channel.d.ts.map | 1 + .../_chatInput/channel.js | 3 + .../_chatInput/channel.js.map | 1 + .../_chatInput/integer.d.ts | 18 + .../_chatInput/integer.d.ts.map | 1 + .../_chatInput/integer.js | 3 + .../_chatInput/integer.js.map | 1 + .../_chatInput/mentionable.d.ts | 6 + .../_chatInput/mentionable.d.ts.map | 1 + .../_chatInput/mentionable.js | 3 + .../_chatInput/mentionable.js.map | 1 + .../_chatInput/number.d.ts | 18 + .../_chatInput/number.d.ts.map | 1 + .../_applicationCommands/_chatInput/number.js | 3 + .../_chatInput/number.js.map | 1 + .../_applicationCommands/_chatInput/role.d.ts | 6 + .../_chatInput/role.d.ts.map | 1 + .../_applicationCommands/_chatInput/role.js | 3 + .../_chatInput/role.js.map | 1 + .../_chatInput/shared.d.ts | 26 + .../_chatInput/shared.d.ts.map | 1 + .../_applicationCommands/_chatInput/shared.js | 21 + .../_chatInput/shared.js.map | 1 + .../_chatInput/string.d.ts | 17 + .../_chatInput/string.d.ts.map | 1 + .../_applicationCommands/_chatInput/string.js | 3 + .../_chatInput/string.js.map | 1 + .../_chatInput/subcommand.d.ts | 13 + .../_chatInput/subcommand.d.ts.map | 1 + .../_chatInput/subcommand.js | 3 + .../_chatInput/subcommand.js.map | 1 + .../_chatInput/subcommandGroup.d.ts | 13 + .../_chatInput/subcommandGroup.d.ts.map | 1 + .../_chatInput/subcommandGroup.js | 3 + .../_chatInput/subcommandGroup.js.map | 1 + .../_applicationCommands/_chatInput/user.d.ts | 6 + .../_chatInput/user.d.ts.map | 1 + .../_applicationCommands/_chatInput/user.js | 3 + .../_chatInput/user.js.map | 1 + .../_applicationCommands/chatInput.d.ts | 68 + .../_applicationCommands/chatInput.d.ts.map | 1 + .../_applicationCommands/chatInput.js | 18 + .../_applicationCommands/chatInput.js.map | 1 + .../_applicationCommands/contextMenu.d.ts | 66 + .../_applicationCommands/contextMenu.d.ts.map | 1 + .../_applicationCommands/contextMenu.js | 3 + .../_applicationCommands/contextMenu.js.map | 1 + .../_applicationCommands/entryPoint.d.ts | 20 + .../_applicationCommands/entryPoint.d.ts.map | 1 + .../_applicationCommands/entryPoint.js | 3 + .../_applicationCommands/entryPoint.js.map | 1 + .../_applicationCommands/internals.d.ts | 9 + .../_applicationCommands/internals.d.ts.map | 1 + .../_applicationCommands/internals.js | 3 + .../_applicationCommands/internals.js.map | 1 + .../_applicationCommands/permissions.d.ts | 55 + .../_applicationCommands/permissions.d.ts.map | 1 + .../_applicationCommands/permissions.js | 21 + .../_applicationCommands/permissions.js.map | 1 + .../v9/_interactions/applicationCommands.d.ts | 192 + .../applicationCommands.d.ts.map | 1 + .../v9/_interactions/applicationCommands.js | 89 + .../_interactions/applicationCommands.js.map | 1 + .../v9/_interactions/autocomplete.d.ts | 11 + .../v9/_interactions/autocomplete.d.ts.map | 1 + .../payloads/v9/_interactions/autocomplete.js | 3 + .../v9/_interactions/autocomplete.js.map | 1 + .../payloads/v9/_interactions/base.d.ts | 233 + .../payloads/v9/_interactions/base.d.ts.map | 1 + .../payloads/v9/_interactions/base.js | 3 + .../payloads/v9/_interactions/base.js.map | 1 + .../v9/_interactions/messageComponents.d.ts | 42 + .../_interactions/messageComponents.d.ts.map | 1 + .../v9/_interactions/messageComponents.js | 3 + .../v9/_interactions/messageComponents.js.map | 1 + .../v9/_interactions/modalSubmit.d.ts | 77 + .../v9/_interactions/modalSubmit.d.ts.map | 1 + .../payloads/v9/_interactions/modalSubmit.js | 3 + .../v9/_interactions/modalSubmit.js.map | 1 + .../payloads/v9/_interactions/ping.d.ts | 4 + .../payloads/v9/_interactions/ping.d.ts.map | 1 + .../payloads/v9/_interactions/ping.js | 3 + .../payloads/v9/_interactions/ping.js.map | 1 + .../payloads/v9/_interactions/responses.d.ts | 124 + .../v9/_interactions/responses.d.ts.map | 1 + .../payloads/v9/_interactions/responses.js | 63 + .../v9/_interactions/responses.js.map | 1 + .../payloads/v9/application.d.ts | 387 + .../payloads/v9/application.d.ts.map | 1 + .../payloads/v9/application.js | 152 + .../payloads/v9/application.js.map | 1 + .../payloads/v9/auditLog.d.ts | 694 + .../payloads/v9/auditLog.d.ts.map | 1 + .../discord-api-types/payloads/v9/auditLog.js | 85 + .../payloads/v9/auditLog.js.map | 1 + .../payloads/v9/autoModeration.d.ts | 222 + .../payloads/v9/autoModeration.d.ts.map | 1 + .../payloads/v9/autoModeration.js | 88 + .../payloads/v9/autoModeration.js.map | 1 + .../payloads/v9/channel.d.ts | 656 + .../payloads/v9/channel.d.ts.map | 1 + .../discord-api-types/payloads/v9/channel.js | 219 + .../payloads/v9/channel.js.map | 1 + .../discord-api-types/payloads/v9/emoji.d.ts | 79 + .../payloads/v9/emoji.d.ts.map | 1 + .../discord-api-types/payloads/v9/emoji.js | 6 + .../payloads/v9/emoji.js.map | 1 + .../payloads/v9/gateway.d.ts | 444 + .../payloads/v9/gateway.d.ts.map | 1 + .../discord-api-types/payloads/v9/gateway.js | 103 + .../payloads/v9/gateway.js.map | 1 + .../discord-api-types/payloads/v9/guild.d.ts | 1215 + .../payloads/v9/guild.d.ts.map | 1 + .../discord-api-types/payloads/v9/guild.js | 395 + .../payloads/v9/guild.js.map | 1 + .../payloads/v9/guildScheduledEvent.d.ts | 244 + .../payloads/v9/guildScheduledEvent.d.ts.map | 1 + .../payloads/v9/guildScheduledEvent.js | 74 + .../payloads/v9/guildScheduledEvent.js.map | 1 + .../discord-api-types/payloads/v9/index.d.ts | 25 + .../payloads/v9/index.d.ts.map | 1 + .../discord-api-types/payloads/v9/index.js | 37 + .../payloads/v9/index.js.map | 1 + .../discord-api-types/payloads/v9/index.mjs | 98 + .../payloads/v9/interactions.d.ts | 25 + .../payloads/v9/interactions.d.ts.map | 1 + .../payloads/v9/interactions.js | 19 + .../payloads/v9/interactions.js.map | 1 + .../discord-api-types/payloads/v9/invite.d.ts | 132 + .../payloads/v9/invite.d.ts.map | 1 + .../discord-api-types/payloads/v9/invite.js | 31 + .../payloads/v9/invite.js.map | 1 + .../payloads/v9/message.d.ts | 2001 + .../payloads/v9/message.d.ts.map | 1 + .../discord-api-types/payloads/v9/message.js | 537 + .../payloads/v9/message.js.map | 1 + .../payloads/v9/monetization.d.ts | 216 + .../payloads/v9/monetization.d.ts.map | 1 + .../payloads/v9/monetization.js | 101 + .../payloads/v9/monetization.js.map | 1 + .../discord-api-types/payloads/v9/oauth2.d.ts | 132 + .../payloads/v9/oauth2.d.ts.map | 1 + .../discord-api-types/payloads/v9/oauth2.js | 136 + .../payloads/v9/oauth2.js.map | 1 + .../payloads/v9/permissions.d.ts | 124 + .../payloads/v9/permissions.d.ts.map | 1 + .../payloads/v9/permissions.js | 17 + .../payloads/v9/permissions.js.map | 1 + .../discord-api-types/payloads/v9/poll.d.ts | 111 + .../payloads/v9/poll.d.ts.map | 1 + .../discord-api-types/payloads/v9/poll.js | 17 + .../discord-api-types/payloads/v9/poll.js.map | 1 + .../payloads/v9/soundboard.d.ts | 43 + .../payloads/v9/soundboard.d.ts.map | 1 + .../payloads/v9/soundboard.js | 6 + .../payloads/v9/soundboard.js.map | 1 + .../payloads/v9/stageInstance.d.ts | 82 + .../payloads/v9/stageInstance.d.ts.map | 1 + .../payloads/v9/stageInstance.js | 21 + .../payloads/v9/stageInstance.js.map | 1 + .../payloads/v9/sticker.d.ts | 125 + .../payloads/v9/sticker.d.ts.map | 1 + .../discord-api-types/payloads/v9/sticker.js | 31 + .../payloads/v9/sticker.js.map | 1 + .../discord-api-types/payloads/v9/teams.d.ts | 79 + .../payloads/v9/teams.d.ts.map | 1 + .../discord-api-types/payloads/v9/teams.js | 24 + .../payloads/v9/teams.js.map | 1 + .../payloads/v9/template.d.ts | 64 + .../payloads/v9/template.d.ts.map | 1 + .../discord-api-types/payloads/v9/template.js | 6 + .../payloads/v9/template.js.map | 1 + .../discord-api-types/payloads/v9/user.d.ts | 428 + .../payloads/v9/user.d.ts.map | 1 + .../discord-api-types/payloads/v9/user.js | 189 + .../discord-api-types/payloads/v9/user.js.map | 1 + .../discord-api-types/payloads/v9/voice.d.ts | 98 + .../payloads/v9/voice.d.ts.map | 1 + .../discord-api-types/payloads/v9/voice.js | 6 + .../payloads/v9/voice.js.map | 1 + .../payloads/v9/webhook.d.ts | 190 + .../payloads/v9/webhook.d.ts.map | 1 + .../discord-api-types/payloads/v9/webhook.js | 69 + .../payloads/v9/webhook.js.map | 1 + .../discord-api-types/rest/common.d.ts | 298 + .../discord-api-types/rest/common.d.ts.map | 1 + node_modules/discord-api-types/rest/common.js | 302 + .../discord-api-types/rest/common.js.map | 1 + .../discord-api-types/rest/index.d.ts | 2 + .../discord-api-types/rest/index.d.ts.map | 1 + node_modules/discord-api-types/rest/index.js | 20 + .../discord-api-types/rest/index.js.map | 1 + node_modules/discord-api-types/rest/index.mjs | 15 + .../rest/v10/application.d.ts | 31 + .../rest/v10/application.d.ts.map | 1 + .../discord-api-types/rest/v10/application.js | 3 + .../rest/v10/application.js.map | 1 + .../discord-api-types/rest/v10/auditLog.d.ts | 31 + .../rest/v10/auditLog.d.ts.map | 1 + .../discord-api-types/rest/v10/auditLog.js | 3 + .../rest/v10/auditLog.js.map | 1 + .../rest/v10/autoModeration.d.ts | 68 + .../rest/v10/autoModeration.d.ts.map | 1 + .../rest/v10/autoModeration.js | 3 + .../rest/v10/autoModeration.js.map | 1 + .../discord-api-types/rest/v10/channel.d.ts | 756 + .../rest/v10/channel.d.ts.map | 1 + .../discord-api-types/rest/v10/channel.js | 12 + .../discord-api-types/rest/v10/channel.js.map | 1 + .../discord-api-types/rest/v10/emoji.d.ts | 85 + .../discord-api-types/rest/v10/emoji.d.ts.map | 1 + .../discord-api-types/rest/v10/emoji.js | 3 + .../discord-api-types/rest/v10/emoji.js.map | 1 + .../discord-api-types/rest/v10/gateway.d.ts | 10 + .../rest/v10/gateway.d.ts.map | 1 + .../discord-api-types/rest/v10/gateway.js | 3 + .../discord-api-types/rest/v10/gateway.js.map | 1 + .../discord-api-types/rest/v10/guild.d.ts | 1062 + .../discord-api-types/rest/v10/guild.d.ts.map | 1 + .../discord-api-types/rest/v10/guild.js | 3 + .../discord-api-types/rest/v10/guild.js.map | 1 + .../rest/v10/guildScheduledEvent.d.ts | 124 + .../rest/v10/guildScheduledEvent.d.ts.map | 1 + .../rest/v10/guildScheduledEvent.js | 3 + .../rest/v10/guildScheduledEvent.js.map | 1 + .../discord-api-types/rest/v10/index.d.ts | 87 + .../discord-api-types/rest/v10/index.d.ts.map | 1 + .../discord-api-types/rest/v10/index.js | 1286 + .../discord-api-types/rest/v10/index.js.map | 1 + .../discord-api-types/rest/v10/index.mjs | 15 + .../rest/v10/interactions.d.ts | 290 + .../rest/v10/interactions.d.ts.map | 1 + .../rest/v10/interactions.js | 3 + .../rest/v10/interactions.js.map | 1 + .../discord-api-types/rest/v10/invite.d.ts | 28 + .../rest/v10/invite.d.ts.map | 1 + .../discord-api-types/rest/v10/invite.js | 3 + .../discord-api-types/rest/v10/invite.js.map | 1 + .../rest/v10/monetization.d.ts | 130 + .../rest/v10/monetization.d.ts.map | 1 + .../rest/v10/monetization.js | 12 + .../rest/v10/monetization.js.map | 1 + .../discord-api-types/rest/v10/oauth2.d.ts | 193 + .../rest/v10/oauth2.d.ts.map | 1 + .../discord-api-types/rest/v10/oauth2.js | 3 + .../discord-api-types/rest/v10/oauth2.js.map | 1 + .../discord-api-types/rest/v10/poll.d.ts | 50 + .../discord-api-types/rest/v10/poll.d.ts.map | 1 + .../discord-api-types/rest/v10/poll.js | 3 + .../discord-api-types/rest/v10/poll.js.map | 1 + .../rest/v10/soundboard.d.ts | 98 + .../rest/v10/soundboard.d.ts.map | 1 + .../discord-api-types/rest/v10/soundboard.js | 3 + .../rest/v10/soundboard.js.map | 1 + .../rest/v10/stageInstance.d.ts | 59 + .../rest/v10/stageInstance.d.ts.map | 1 + .../rest/v10/stageInstance.js | 3 + .../rest/v10/stageInstance.js.map | 1 + .../discord-api-types/rest/v10/sticker.d.ts | 85 + .../rest/v10/sticker.d.ts.map | 1 + .../discord-api-types/rest/v10/sticker.js | 3 + .../discord-api-types/rest/v10/sticker.js.map | 1 + .../discord-api-types/rest/v10/template.d.ts | 65 + .../rest/v10/template.d.ts.map | 1 + .../discord-api-types/rest/v10/template.js | 3 + .../rest/v10/template.js.map | 1 + .../discord-api-types/rest/v10/user.d.ts | 122 + .../discord-api-types/rest/v10/user.d.ts.map | 1 + .../discord-api-types/rest/v10/user.js | 3 + .../discord-api-types/rest/v10/user.js.map | 1 + .../discord-api-types/rest/v10/voice.d.ts | 57 + .../discord-api-types/rest/v10/voice.d.ts.map | 1 + .../discord-api-types/rest/v10/voice.js | 3 + .../discord-api-types/rest/v10/voice.js.map | 1 + .../discord-api-types/rest/v10/webhook.d.ts | 269 + .../rest/v10/webhook.d.ts.map | 1 + .../discord-api-types/rest/v10/webhook.js | 3 + .../discord-api-types/rest/v10/webhook.js.map | 1 + .../discord-api-types/rest/v6/auditLog.d.ts | 17 + .../rest/v6/auditLog.d.ts.map | 1 + .../discord-api-types/rest/v6/auditLog.js | 3 + .../discord-api-types/rest/v6/auditLog.js.map | 1 + .../discord-api-types/rest/v6/channel.d.ts | 268 + .../rest/v6/channel.d.ts.map | 1 + .../discord-api-types/rest/v6/channel.js | 15 + .../discord-api-types/rest/v6/channel.js.map | 1 + .../discord-api-types/rest/v6/emoji.d.ts | 50 + .../discord-api-types/rest/v6/emoji.d.ts.map | 1 + .../discord-api-types/rest/v6/emoji.js | 3 + .../discord-api-types/rest/v6/emoji.js.map | 1 + .../discord-api-types/rest/v6/gateway.d.ts | 14 + .../rest/v6/gateway.d.ts.map | 1 + .../discord-api-types/rest/v6/gateway.js | 3 + .../discord-api-types/rest/v6/gateway.js.map | 1 + .../discord-api-types/rest/v6/guild.d.ts | 465 + .../discord-api-types/rest/v6/guild.d.ts.map | 1 + .../discord-api-types/rest/v6/guild.js | 3 + .../discord-api-types/rest/v6/guild.js.map | 1 + .../discord-api-types/rest/v6/index.d.ts | 348 + .../discord-api-types/rest/v6/index.d.ts.map | 1 + .../discord-api-types/rest/v6/index.js | 499 + .../discord-api-types/rest/v6/index.js.map | 1 + .../discord-api-types/rest/v6/index.mjs | 9 + .../discord-api-types/rest/v6/invite.d.ts | 20 + .../discord-api-types/rest/v6/invite.d.ts.map | 1 + .../discord-api-types/rest/v6/invite.js | 3 + .../discord-api-types/rest/v6/invite.js.map | 1 + .../discord-api-types/rest/v6/oauth2.d.ts | 177 + .../discord-api-types/rest/v6/oauth2.d.ts.map | 1 + .../discord-api-types/rest/v6/oauth2.js | 3 + .../discord-api-types/rest/v6/oauth2.js.map | 1 + .../discord-api-types/rest/v6/user.d.ts | 80 + .../discord-api-types/rest/v6/user.d.ts.map | 1 + .../discord-api-types/rest/v6/user.js | 3 + .../discord-api-types/rest/v6/user.js.map | 1 + .../discord-api-types/rest/v6/voice.d.ts | 8 + .../discord-api-types/rest/v6/voice.d.ts.map | 1 + .../discord-api-types/rest/v6/voice.js | 3 + .../discord-api-types/rest/v6/voice.js.map | 1 + .../discord-api-types/rest/v6/webhook.d.ts | 139 + .../rest/v6/webhook.d.ts.map | 1 + .../discord-api-types/rest/v6/webhook.js | 3 + .../discord-api-types/rest/v6/webhook.js.map | 1 + .../discord-api-types/rest/v8/auditLog.d.ts | 32 + .../rest/v8/auditLog.d.ts.map | 1 + .../discord-api-types/rest/v8/auditLog.js | 3 + .../discord-api-types/rest/v8/auditLog.js.map | 1 + .../discord-api-types/rest/v8/channel.d.ts | 564 + .../rest/v8/channel.d.ts.map | 1 + .../discord-api-types/rest/v8/channel.js | 3 + .../discord-api-types/rest/v8/channel.js.map | 1 + .../discord-api-types/rest/v8/emoji.d.ts | 69 + .../discord-api-types/rest/v8/emoji.d.ts.map | 1 + .../discord-api-types/rest/v8/emoji.js | 3 + .../discord-api-types/rest/v8/emoji.js.map | 1 + .../discord-api-types/rest/v8/gateway.d.ts | 14 + .../rest/v8/gateway.d.ts.map | 1 + .../discord-api-types/rest/v8/gateway.js | 3 + .../discord-api-types/rest/v8/gateway.js.map | 1 + .../discord-api-types/rest/v8/guild.d.ts | 882 + .../discord-api-types/rest/v8/guild.d.ts.map | 1 + .../discord-api-types/rest/v8/guild.js | 3 + .../discord-api-types/rest/v8/guild.js.map | 1 + .../rest/v8/guildScheduledEvent.d.ts | 141 + .../rest/v8/guildScheduledEvent.d.ts.map | 1 + .../rest/v8/guildScheduledEvent.js | 3 + .../rest/v8/guildScheduledEvent.js.map | 1 + .../discord-api-types/rest/v8/index.d.ts | 539 + .../discord-api-types/rest/v8/index.d.ts.map | 1 + .../discord-api-types/rest/v8/index.js | 747 + .../discord-api-types/rest/v8/index.js.map | 1 + .../discord-api-types/rest/v8/index.mjs | 10 + .../rest/v8/interactions.d.ts | 257 + .../rest/v8/interactions.d.ts.map | 1 + .../discord-api-types/rest/v8/interactions.js | 3 + .../rest/v8/interactions.js.map | 1 + .../discord-api-types/rest/v8/invite.d.ts | 32 + .../discord-api-types/rest/v8/invite.d.ts.map | 1 + .../discord-api-types/rest/v8/invite.js | 3 + .../discord-api-types/rest/v8/invite.js.map | 1 + .../discord-api-types/rest/v8/oauth2.d.ts | 213 + .../discord-api-types/rest/v8/oauth2.d.ts.map | 1 + .../discord-api-types/rest/v8/oauth2.js | 3 + .../discord-api-types/rest/v8/oauth2.js.map | 1 + .../rest/v8/stageInstance.d.ts | 63 + .../rest/v8/stageInstance.d.ts.map | 1 + .../rest/v8/stageInstance.js | 3 + .../rest/v8/stageInstance.js.map | 1 + .../discord-api-types/rest/v8/sticker.d.ts | 70 + .../rest/v8/sticker.d.ts.map | 1 + .../discord-api-types/rest/v8/sticker.js | 3 + .../discord-api-types/rest/v8/sticker.js.map | 1 + .../discord-api-types/rest/v8/template.d.ts | 83 + .../rest/v8/template.d.ts.map | 1 + .../discord-api-types/rest/v8/template.js | 3 + .../discord-api-types/rest/v8/template.js.map | 1 + .../discord-api-types/rest/v8/user.d.ts | 109 + .../discord-api-types/rest/v8/user.d.ts.map | 1 + .../discord-api-types/rest/v8/user.js | 3 + .../discord-api-types/rest/v8/user.js.map | 1 + .../discord-api-types/rest/v8/voice.d.ts | 8 + .../discord-api-types/rest/v8/voice.d.ts.map | 1 + .../discord-api-types/rest/v8/voice.js | 3 + .../discord-api-types/rest/v8/voice.js.map | 1 + .../discord-api-types/rest/v8/webhook.d.ts | 283 + .../rest/v8/webhook.d.ts.map | 1 + .../discord-api-types/rest/v8/webhook.js | 3 + .../discord-api-types/rest/v8/webhook.js.map | 1 + .../rest/v9/application.d.ts | 31 + .../rest/v9/application.d.ts.map | 1 + .../discord-api-types/rest/v9/application.js | 3 + .../rest/v9/application.js.map | 1 + .../discord-api-types/rest/v9/auditLog.d.ts | 31 + .../rest/v9/auditLog.d.ts.map | 1 + .../discord-api-types/rest/v9/auditLog.js | 3 + .../discord-api-types/rest/v9/auditLog.js.map | 1 + .../rest/v9/autoModeration.d.ts | 68 + .../rest/v9/autoModeration.d.ts.map | 1 + .../rest/v9/autoModeration.js | 3 + .../rest/v9/autoModeration.js.map | 1 + .../discord-api-types/rest/v9/channel.d.ts | 769 + .../rest/v9/channel.d.ts.map | 1 + .../discord-api-types/rest/v9/channel.js | 12 + .../discord-api-types/rest/v9/channel.js.map | 1 + .../discord-api-types/rest/v9/emoji.d.ts | 85 + .../discord-api-types/rest/v9/emoji.d.ts.map | 1 + .../discord-api-types/rest/v9/emoji.js | 3 + .../discord-api-types/rest/v9/emoji.js.map | 1 + .../discord-api-types/rest/v9/gateway.d.ts | 10 + .../rest/v9/gateway.d.ts.map | 1 + .../discord-api-types/rest/v9/gateway.js | 3 + .../discord-api-types/rest/v9/gateway.js.map | 1 + .../discord-api-types/rest/v9/guild.d.ts | 1068 + .../discord-api-types/rest/v9/guild.d.ts.map | 1 + .../discord-api-types/rest/v9/guild.js | 3 + .../discord-api-types/rest/v9/guild.js.map | 1 + .../rest/v9/guildScheduledEvent.d.ts | 124 + .../rest/v9/guildScheduledEvent.d.ts.map | 1 + .../rest/v9/guildScheduledEvent.js | 3 + .../rest/v9/guildScheduledEvent.js.map | 1 + .../discord-api-types/rest/v9/index.d.ts | 87 + .../discord-api-types/rest/v9/index.d.ts.map | 1 + .../discord-api-types/rest/v9/index.js | 1293 + .../discord-api-types/rest/v9/index.js.map | 1 + .../discord-api-types/rest/v9/index.mjs | 15 + .../rest/v9/interactions.d.ts | 290 + .../rest/v9/interactions.d.ts.map | 1 + .../discord-api-types/rest/v9/interactions.js | 3 + .../rest/v9/interactions.js.map | 1 + .../discord-api-types/rest/v9/invite.d.ts | 28 + .../discord-api-types/rest/v9/invite.d.ts.map | 1 + .../discord-api-types/rest/v9/invite.js | 3 + .../discord-api-types/rest/v9/invite.js.map | 1 + .../rest/v9/monetization.d.ts | 130 + .../rest/v9/monetization.d.ts.map | 1 + .../discord-api-types/rest/v9/monetization.js | 12 + .../rest/v9/monetization.js.map | 1 + .../discord-api-types/rest/v9/oauth2.d.ts | 193 + .../discord-api-types/rest/v9/oauth2.d.ts.map | 1 + .../discord-api-types/rest/v9/oauth2.js | 3 + .../discord-api-types/rest/v9/oauth2.js.map | 1 + .../discord-api-types/rest/v9/poll.d.ts | 50 + .../discord-api-types/rest/v9/poll.d.ts.map | 1 + .../discord-api-types/rest/v9/poll.js | 3 + .../discord-api-types/rest/v9/poll.js.map | 1 + .../discord-api-types/rest/v9/soundboard.d.ts | 98 + .../rest/v9/soundboard.d.ts.map | 1 + .../discord-api-types/rest/v9/soundboard.js | 3 + .../rest/v9/soundboard.js.map | 1 + .../rest/v9/stageInstance.d.ts | 59 + .../rest/v9/stageInstance.d.ts.map | 1 + .../rest/v9/stageInstance.js | 3 + .../rest/v9/stageInstance.js.map | 1 + .../discord-api-types/rest/v9/sticker.d.ts | 85 + .../rest/v9/sticker.d.ts.map | 1 + .../discord-api-types/rest/v9/sticker.js | 3 + .../discord-api-types/rest/v9/sticker.js.map | 1 + .../discord-api-types/rest/v9/template.d.ts | 65 + .../rest/v9/template.d.ts.map | 1 + .../discord-api-types/rest/v9/template.js | 3 + .../discord-api-types/rest/v9/template.js.map | 1 + .../discord-api-types/rest/v9/user.d.ts | 122 + .../discord-api-types/rest/v9/user.d.ts.map | 1 + .../discord-api-types/rest/v9/user.js | 3 + .../discord-api-types/rest/v9/user.js.map | 1 + .../discord-api-types/rest/v9/voice.d.ts | 57 + .../discord-api-types/rest/v9/voice.d.ts.map | 1 + .../discord-api-types/rest/v9/voice.js | 3 + .../discord-api-types/rest/v9/voice.js.map | 1 + .../discord-api-types/rest/v9/webhook.d.ts | 269 + .../rest/v9/webhook.d.ts.map | 1 + .../discord-api-types/rest/v9/webhook.js | 3 + .../discord-api-types/rest/v9/webhook.js.map | 1 + .../discord-api-types/rpc/common.d.ts | 453 + .../discord-api-types/rpc/common.d.ts.map | 1 + node_modules/discord-api-types/rpc/common.js | 240 + .../discord-api-types/rpc/common.js.map | 1 + node_modules/discord-api-types/rpc/index.d.ts | 2 + .../discord-api-types/rpc/index.d.ts.map | 1 + node_modules/discord-api-types/rpc/index.js | 20 + .../discord-api-types/rpc/index.js.map | 1 + node_modules/discord-api-types/rpc/index.mjs | 13 + node_modules/discord-api-types/rpc/v10.d.ts | 2191 + .../discord-api-types/rpc/v10.d.ts.map | 1 + node_modules/discord-api-types/rpc/v10.js | 299 + node_modules/discord-api-types/rpc/v10.js.map | 1 + node_modules/discord-api-types/rpc/v10.mjs | 13 + node_modules/discord-api-types/rpc/v8.d.ts | 39 + .../discord-api-types/rpc/v8.d.ts.map | 1 + node_modules/discord-api-types/rpc/v8.js | 18 + node_modules/discord-api-types/rpc/v8.js.map | 1 + node_modules/discord-api-types/rpc/v8.mjs | 10 + node_modules/discord-api-types/rpc/v9.d.ts | 39 + .../discord-api-types/rpc/v9.d.ts.map | 1 + node_modules/discord-api-types/rpc/v9.js | 18 + node_modules/discord-api-types/rpc/v9.js.map | 1 + node_modules/discord-api-types/rpc/v9.mjs | 10 + .../discord-api-types/scripts/versions.mjs | 46 + .../discord-api-types/utils/index.d.ts | 2 + .../discord-api-types/utils/index.d.ts.map | 1 + node_modules/discord-api-types/utils/index.js | 20 + .../discord-api-types/utils/index.js.map | 1 + .../discord-api-types/utils/index.mjs | 17 + .../discord-api-types/utils/internals.d.ts | 34 + .../utils/internals.d.ts.map | 1 + .../discord-api-types/utils/internals.js | 13 + .../discord-api-types/utils/internals.js.map | 1 + node_modules/discord-api-types/utils/v10.d.ts | 100 + .../discord-api-types/utils/v10.d.ts.map | 1 + node_modules/discord-api-types/utils/v10.js | 158 + .../discord-api-types/utils/v10.js.map | 1 + node_modules/discord-api-types/utils/v10.mjs | 17 + node_modules/discord-api-types/utils/v8.d.ts | 66 + .../discord-api-types/utils/v8.d.ts.map | 1 + node_modules/discord-api-types/utils/v8.js | 96 + .../discord-api-types/utils/v8.js.map | 1 + node_modules/discord-api-types/utils/v8.mjs | 11 + node_modules/discord-api-types/utils/v9.d.ts | 100 + .../discord-api-types/utils/v9.d.ts.map | 1 + node_modules/discord-api-types/utils/v9.js | 158 + .../discord-api-types/utils/v9.js.map | 1 + node_modules/discord-api-types/utils/v9.mjs | 17 + node_modules/discord-api-types/v10.d.ts | 8 + node_modules/discord-api-types/v10.d.ts.map | 1 + node_modules/discord-api-types/v10.js | 47 + node_modules/discord-api-types/v10.js.map | 1 + node_modules/discord-api-types/v10.mjs | 129 + node_modules/discord-api-types/v6.d.ts | 5 + node_modules/discord-api-types/v6.d.ts.map | 1 + node_modules/discord-api-types/v6.js | 21 + node_modules/discord-api-types/v6.js.map | 1 + node_modules/discord-api-types/v6.mjs | 44 + node_modules/discord-api-types/v8.d.ts | 7 + node_modules/discord-api-types/v8.d.ts.map | 1 + node_modules/discord-api-types/v8.js | 46 + node_modules/discord-api-types/v8.js.map | 1 + node_modules/discord-api-types/v8.mjs | 72 + node_modules/discord-api-types/v9.d.ts | 8 + node_modules/discord-api-types/v9.d.ts.map | 1 + node_modules/discord-api-types/v9.js | 47 + node_modules/discord-api-types/v9.js.map | 1 + node_modules/discord-api-types/v9.mjs | 126 + .../discord-api-types/voice/index.d.ts | 2 + .../discord-api-types/voice/index.d.ts.map | 1 + node_modules/discord-api-types/voice/index.js | 20 + .../discord-api-types/voice/index.js.map | 1 + .../discord-api-types/voice/index.mjs | 8 + node_modules/discord-api-types/voice/v4.d.ts | 174 + .../discord-api-types/voice/v4.d.ts.map | 1 + node_modules/discord-api-types/voice/v4.js | 179 + .../discord-api-types/voice/v4.js.map | 1 + node_modules/discord-api-types/voice/v4.mjs | 6 + node_modules/discord-api-types/voice/v8.d.ts | 632 + .../discord-api-types/voice/v8.d.ts.map | 1 + node_modules/discord-api-types/voice/v8.js | 236 + .../discord-api-types/voice/v8.js.map | 1 + node_modules/discord-api-types/voice/v8.mjs | 8 + node_modules/discord.js/LICENSE | 191 + node_modules/discord.js/README.md | 144 + node_modules/discord.js/package.json | 107 + .../discord.js/src/client/BaseClient.js | 120 + node_modules/discord.js/src/client/Client.js | 649 + .../discord.js/src/client/WebhookClient.js | 103 + .../discord.js/src/client/actions/Action.js | 150 + .../src/client/actions/ActionsManager.js | 85 + .../ApplicationCommandPermissionsUpdate.js | 34 + .../actions/AutoModerationActionExecution.js | 26 + .../actions/AutoModerationRuleCreate.js | 27 + .../actions/AutoModerationRuleDelete.js | 31 + .../actions/AutoModerationRuleUpdate.js | 29 + .../src/client/actions/ChannelCreate.js | 23 + .../src/client/actions/ChannelDelete.js | 23 + .../src/client/actions/ChannelUpdate.js | 42 + .../src/client/actions/EntitlementCreate.js | 23 + .../src/client/actions/EntitlementDelete.js | 27 + .../src/client/actions/EntitlementUpdate.js | 25 + .../actions/GuildAuditLogEntryCreate.js | 29 + .../src/client/actions/GuildBanAdd.js | 20 + .../src/client/actions/GuildBanRemove.js | 25 + .../actions/GuildChannelsPositionUpdate.js | 21 + .../src/client/actions/GuildDelete.js | 44 + .../src/client/actions/GuildEmojiCreate.js | 20 + .../src/client/actions/GuildEmojiDelete.js | 19 + .../src/client/actions/GuildEmojiUpdate.js | 20 + .../src/client/actions/GuildEmojisUpdate.js | 34 + .../client/actions/GuildIntegrationsUpdate.js | 19 + .../src/client/actions/GuildMemberRemove.js | 31 + .../src/client/actions/GuildMemberUpdate.js | 44 + .../src/client/actions/GuildRoleCreate.js | 25 + .../src/client/actions/GuildRoleDelete.js | 29 + .../src/client/actions/GuildRoleUpdate.js | 39 + .../actions/GuildRolesPositionUpdate.js | 21 + .../actions/GuildScheduledEventCreate.js | 27 + .../actions/GuildScheduledEventDelete.js | 31 + .../actions/GuildScheduledEventUpdate.js | 30 + .../actions/GuildScheduledEventUserAdd.js | 32 + .../actions/GuildScheduledEventUserRemove.js | 32 + .../actions/GuildSoundboardSoundDelete.js | 29 + .../src/client/actions/GuildStickerCreate.js | 20 + .../src/client/actions/GuildStickerDelete.js | 19 + .../src/client/actions/GuildStickerUpdate.js | 20 + .../src/client/actions/GuildStickersUpdate.js | 34 + .../src/client/actions/GuildUpdate.js | 33 + .../src/client/actions/InteractionCreate.js | 107 + .../src/client/actions/InviteCreate.js | 27 + .../src/client/actions/InviteDelete.js | 29 + .../src/client/actions/MessageCreate.js | 41 + .../src/client/actions/MessageDelete.js | 32 + .../src/client/actions/MessageDeleteBulk.js | 47 + .../src/client/actions/MessagePollVoteAdd.js | 40 + .../client/actions/MessagePollVoteRemove.js | 38 + .../src/client/actions/MessageReactionAdd.js | 70 + .../client/actions/MessageReactionRemove.js | 50 + .../actions/MessageReactionRemoveAll.js | 33 + .../actions/MessageReactionRemoveEmoji.js | 28 + .../src/client/actions/MessageUpdate.js | 26 + .../src/client/actions/PresenceUpdate.js | 45 + .../src/client/actions/StageInstanceCreate.js | 28 + .../src/client/actions/StageInstanceDelete.js | 31 + .../src/client/actions/StageInstanceUpdate.js | 30 + .../src/client/actions/ThreadCreate.js | 24 + .../src/client/actions/ThreadDelete.js | 26 + .../src/client/actions/ThreadListSync.js | 60 + .../src/client/actions/ThreadMemberUpdate.js | 30 + .../src/client/actions/ThreadMembersUpdate.js | 47 + .../src/client/actions/TypingStart.js | 29 + .../src/client/actions/UserUpdate.js | 36 + .../src/client/actions/VoiceStateUpdate.js | 43 + .../src/client/actions/WebhooksUpdate.js | 37 + .../src/client/voice/ClientVoiceManager.js | 44 + .../src/client/websocket/WebSocketManager.js | 407 + .../src/client/websocket/WebSocketShard.js | 234 + .../APPLICATION_COMMAND_PERMISSIONS_UPDATE.js | 5 + .../AUTO_MODERATION_ACTION_EXECUTION.js | 5 + .../handlers/AUTO_MODERATION_RULE_CREATE.js | 5 + .../handlers/AUTO_MODERATION_RULE_DELETE.js | 5 + .../handlers/AUTO_MODERATION_RULE_UPDATE.js | 5 + .../websocket/handlers/CHANNEL_CREATE.js | 5 + .../websocket/handlers/CHANNEL_DELETE.js | 5 + .../websocket/handlers/CHANNEL_PINS_UPDATE.js | 22 + .../websocket/handlers/CHANNEL_UPDATE.js | 16 + .../websocket/handlers/ENTITLEMENT_CREATE.js | 5 + .../websocket/handlers/ENTITLEMENT_DELETE.js | 5 + .../websocket/handlers/ENTITLEMENT_UPDATE.js | 5 + .../handlers/GUILD_AUDIT_LOG_ENTRY_CREATE.js | 5 + .../websocket/handlers/GUILD_BAN_ADD.js | 5 + .../websocket/handlers/GUILD_BAN_REMOVE.js | 5 + .../client/websocket/handlers/GUILD_CREATE.js | 33 + .../client/websocket/handlers/GUILD_DELETE.js | 5 + .../websocket/handlers/GUILD_EMOJIS_UPDATE.js | 5 + .../handlers/GUILD_INTEGRATIONS_UPDATE.js | 5 + .../websocket/handlers/GUILD_MEMBERS_CHUNK.js | 39 + .../websocket/handlers/GUILD_MEMBER_ADD.js | 20 + .../websocket/handlers/GUILD_MEMBER_REMOVE.js | 5 + .../websocket/handlers/GUILD_MEMBER_UPDATE.js | 5 + .../websocket/handlers/GUILD_ROLE_CREATE.js | 5 + .../websocket/handlers/GUILD_ROLE_DELETE.js | 5 + .../websocket/handlers/GUILD_ROLE_UPDATE.js | 5 + .../handlers/GUILD_SCHEDULED_EVENT_CREATE.js | 5 + .../handlers/GUILD_SCHEDULED_EVENT_DELETE.js | 5 + .../handlers/GUILD_SCHEDULED_EVENT_UPDATE.js | 5 + .../GUILD_SCHEDULED_EVENT_USER_ADD.js | 5 + .../GUILD_SCHEDULED_EVENT_USER_REMOVE.js | 5 + .../GUILD_SOUNDBOARD_SOUNDS_UPDATE.js | 24 + .../handlers/GUILD_SOUNDBOARD_SOUND_CREATE.js | 18 + .../handlers/GUILD_SOUNDBOARD_SOUND_DELETE.js | 5 + .../handlers/GUILD_SOUNDBOARD_SOUND_UPDATE.js | 20 + .../handlers/GUILD_STICKERS_UPDATE.js | 5 + .../client/websocket/handlers/GUILD_UPDATE.js | 5 + .../websocket/handlers/INTERACTION_CREATE.js | 5 + .../websocket/handlers/INVITE_CREATE.js | 5 + .../websocket/handlers/INVITE_DELETE.js | 5 + .../websocket/handlers/MESSAGE_CREATE.js | 5 + .../websocket/handlers/MESSAGE_DELETE.js | 5 + .../websocket/handlers/MESSAGE_DELETE_BULK.js | 5 + .../handlers/MESSAGE_POLL_VOTE_ADD.js | 5 + .../handlers/MESSAGE_POLL_VOTE_REMOVE.js | 5 + .../handlers/MESSAGE_REACTION_ADD.js | 5 + .../handlers/MESSAGE_REACTION_REMOVE.js | 5 + .../handlers/MESSAGE_REACTION_REMOVE_ALL.js | 5 + .../handlers/MESSAGE_REACTION_REMOVE_EMOJI.js | 5 + .../websocket/handlers/MESSAGE_UPDATE.js | 16 + .../websocket/handlers/PRESENCE_UPDATE.js | 5 + .../client/websocket/handlers/RATE_LIMITED.js | 25 + .../src/client/websocket/handlers/READY.js | 27 + .../src/client/websocket/handlers/RESUMED.js | 14 + .../websocket/handlers/SOUNDBOARD_SOUNDS.js | 24 + .../handlers/STAGE_INSTANCE_CREATE.js | 5 + .../handlers/STAGE_INSTANCE_DELETE.js | 5 + .../handlers/STAGE_INSTANCE_UPDATE.js | 5 + .../websocket/handlers/SUBSCRIPTION_CREATE.js | 14 + .../websocket/handlers/SUBSCRIPTION_DELETE.js | 16 + .../websocket/handlers/SUBSCRIPTION_UPDATE.js | 16 + .../websocket/handlers/THREAD_CREATE.js | 5 + .../websocket/handlers/THREAD_DELETE.js | 5 + .../websocket/handlers/THREAD_LIST_SYNC.js | 5 + .../handlers/THREAD_MEMBERS_UPDATE.js | 5 + .../handlers/THREAD_MEMBER_UPDATE.js | 5 + .../websocket/handlers/THREAD_UPDATE.js | 16 + .../client/websocket/handlers/TYPING_START.js | 5 + .../client/websocket/handlers/USER_UPDATE.js | 5 + .../handlers/VOICE_CHANNEL_EFFECT_SEND.js | 16 + .../websocket/handlers/VOICE_SERVER_UPDATE.js | 6 + .../websocket/handlers/VOICE_STATE_UPDATE.js | 5 + .../websocket/handlers/WEBHOOKS_UPDATE.js | 5 + .../src/client/websocket/handlers/index.js | 79 + .../discord.js/src/errors/DJSError.js | 52 + .../discord.js/src/errors/ErrorCodes.js | 356 + .../discord.js/src/errors/Messages.js | 187 + node_modules/discord.js/src/errors/index.js | 5 + node_modules/discord.js/src/index.js | 254 + .../src/managers/ApplicationCommandManager.js | 269 + .../ApplicationCommandPermissionsManager.js | 428 + .../src/managers/ApplicationEmojiManager.js | 142 + .../src/managers/AutoModerationRuleManager.js | 292 + .../src/managers/BaseGuildEmojiManager.js | 85 + .../discord.js/src/managers/BaseManager.js | 19 + .../discord.js/src/managers/CachedManager.js | 64 + .../managers/CategoryChannelChildManager.js | 79 + .../discord.js/src/managers/ChannelManager.js | 135 + .../src/managers/DMMessageManager.js | 17 + .../discord.js/src/managers/DataManager.js | 61 + .../src/managers/EntitlementManager.js | 174 + .../GuildApplicationCommandManager.js | 28 + .../src/managers/GuildBanManager.js | 249 + .../src/managers/GuildChannelManager.js | 519 + .../src/managers/GuildEmojiManager.js | 174 + .../src/managers/GuildEmojiRoleManager.js | 126 + .../src/managers/GuildForumThreadManager.js | 83 + .../src/managers/GuildInviteManager.js | 215 + .../discord.js/src/managers/GuildManager.js | 408 + .../src/managers/GuildMemberManager.js | 638 + .../src/managers/GuildMemberRoleManager.js | 217 + .../src/managers/GuildMessageManager.js | 17 + .../managers/GuildScheduledEventManager.js | 315 + .../managers/GuildSoundboardSoundManager.js | 214 + .../src/managers/GuildStickerManager.js | 182 + .../src/managers/GuildTextThreadManager.js | 91 + .../discord.js/src/managers/MessageManager.js | 368 + .../managers/PartialGroupDMMessageManager.js | 17 + .../managers/PermissionOverwriteManager.js | 166 + .../src/managers/PollAnswerVoterManager.js | 50 + .../src/managers/PresenceManager.js | 58 + .../src/managers/ReactionManager.js | 68 + .../src/managers/ReactionUserManager.js | 78 + .../discord.js/src/managers/RoleManager.js | 444 + .../src/managers/StageInstanceManager.js | 159 + .../src/managers/SubscriptionManager.js | 81 + .../discord.js/src/managers/ThreadManager.js | 193 + .../src/managers/ThreadMemberManager.js | 204 + .../discord.js/src/managers/UserManager.js | 151 + .../src/managers/VoiceStateManager.js | 59 + node_modules/discord.js/src/sharding/Shard.js | 482 + .../src/sharding/ShardClientUtil.js | 292 + .../src/sharding/ShardingManager.js | 331 + .../discord.js/src/structures/ActionRow.js | 46 + .../src/structures/ActionRowBuilder.js | 35 + .../src/structures/AnonymousGuild.js | 97 + .../src/structures/ApplicationCommand.js | 639 + .../src/structures/ApplicationEmoji.js | 169 + .../ApplicationRoleConnectionMetadata.js | 46 + .../discord.js/src/structures/Attachment.js | 163 + .../src/structures/AttachmentBuilder.js | 111 + .../AutoModerationActionExecution.js | 116 + .../src/structures/AutoModerationRule.js | 288 + .../src/structures/AutocompleteInteraction.js | 102 + .../discord.js/src/structures/Base.js | 43 + .../discord.js/src/structures/BaseChannel.js | 171 + .../discord.js/src/structures/BaseGuild.js | 119 + .../src/structures/BaseGuildEmoji.js | 111 + .../src/structures/BaseGuildTextChannel.js | 196 + .../src/structures/BaseGuildVoiceChannel.js | 234 + .../src/structures/BaseInteraction.js | 349 + .../src/structures/BaseSelectMenuComponent.js | 56 + .../src/structures/ButtonBuilder.js | 44 + .../src/structures/ButtonComponent.js | 65 + .../src/structures/ButtonInteraction.js | 11 + .../src/structures/CategoryChannel.js | 45 + .../structures/ChannelSelectMenuBuilder.js | 31 + .../structures/ChannelSelectMenuComponent.js | 20 + .../ChannelSelectMenuInteraction.js | 33 + .../structures/ChatInputCommandInteraction.js | 42 + .../src/structures/ClientApplication.js | 415 + .../src/structures/ClientPresence.js | 84 + .../discord.js/src/structures/ClientUser.js | 204 + .../src/structures/CommandInteraction.js | 168 + .../CommandInteractionOptionResolver.js | 308 + .../discord.js/src/structures/Component.js | 56 + .../src/structures/ContainerComponent.js | 60 + .../ContextMenuCommandInteraction.js | 65 + .../discord.js/src/structures/DMChannel.js | 143 + .../src/structures/DirectoryChannel.js | 36 + .../discord.js/src/structures/Embed.js | 237 + .../discord.js/src/structures/EmbedBuilder.js | 50 + .../discord.js/src/structures/Emoji.js | 115 + .../discord.js/src/structures/Entitlement.js | 179 + .../src/structures/FileComponent.js | 40 + .../discord.js/src/structures/ForumChannel.js | 31 + .../discord.js/src/structures/Guild.js | 1496 + .../src/structures/GuildAuditLogs.js | 91 + .../src/structures/GuildAuditLogsEntry.js | 527 + .../discord.js/src/structures/GuildBan.js | 59 + .../discord.js/src/structures/GuildChannel.js | 476 + .../discord.js/src/structures/GuildEmoji.js | 148 + .../discord.js/src/structures/GuildMember.js | 591 + .../src/structures/GuildOnboarding.js | 64 + .../src/structures/GuildOnboardingPrompt.js | 78 + .../structures/GuildOnboardingPromptOption.js | 86 + .../discord.js/src/structures/GuildPreview.js | 193 + .../src/structures/GuildPreviewEmoji.js | 27 + .../src/structures/GuildScheduledEvent.js | 534 + .../src/structures/GuildTemplate.js | 242 + .../discord.js/src/structures/Integration.js | 220 + .../src/structures/IntegrationApplication.js | 85 + .../src/structures/InteractionCallback.js | 74 + .../structures/InteractionCallbackResource.js | 52 + .../structures/InteractionCallbackResponse.js | 33 + .../src/structures/InteractionCollector.js | 269 + .../src/structures/InteractionResponse.js | 102 + .../src/structures/InteractionWebhook.js | 59 + .../discord.js/src/structures/Invite.js | 341 + .../discord.js/src/structures/InviteGuild.js | 22 + .../src/structures/InviteStageInstance.js | 87 + .../src/structures/LabelComponent.js | 54 + .../discord.js/src/structures/MediaChannel.js | 11 + .../src/structures/MediaGalleryComponent.js | 31 + .../src/structures/MediaGalleryItem.js | 51 + .../MentionableSelectMenuBuilder.js | 32 + .../MentionableSelectMenuComponent.js | 11 + .../MentionableSelectMenuInteraction.js | 71 + .../discord.js/src/structures/Message.js | 1134 + .../src/structures/MessageCollector.js | 146 + .../structures/MessageComponentInteraction.js | 108 + .../MessageContextMenuCommandInteraction.js | 20 + .../src/structures/MessageMentions.js | 297 + .../src/structures/MessagePayload.js | 344 + .../src/structures/MessageReaction.js | 200 + .../discord.js/src/structures/ModalBuilder.js | 36 + .../src/structures/ModalSubmitFields.js | 263 + .../src/structures/ModalSubmitInteraction.js | 275 + .../discord.js/src/structures/NewsChannel.js | 32 + .../discord.js/src/structures/OAuth2Guild.js | 28 + .../src/structures/PartialGroupDMChannel.js | 131 + .../src/structures/PermissionOverwrites.js | 199 + .../discord.js/src/structures/Poll.js | 175 + .../discord.js/src/structures/PollAnswer.js | 114 + .../discord.js/src/structures/Presence.js | 385 + .../PrimaryEntryPointCommandInteraction.js | 11 + .../src/structures/ReactionCollector.js | 229 + .../src/structures/ReactionEmoji.js | 31 + .../discord.js/src/structures/Role.js | 519 + .../src/structures/RoleSelectMenuBuilder.js | 31 + .../src/structures/RoleSelectMenuComponent.js | 11 + .../structures/RoleSelectMenuInteraction.js | 33 + node_modules/discord.js/src/structures/SKU.js | 52 + .../src/structures/SectionComponent.js | 42 + .../src/structures/SelectMenuBuilder.js | 26 + .../src/structures/SelectMenuComponent.js | 26 + .../src/structures/SelectMenuInteraction.js | 26 + .../src/structures/SelectMenuOptionBuilder.js | 26 + .../src/structures/SeparatorComponent.js | 30 + .../src/structures/SoundboardSound.js | 204 + .../discord.js/src/structures/StageChannel.js | 112 + .../src/structures/StageInstance.js | 167 + .../discord.js/src/structures/Sticker.js | 268 + .../discord.js/src/structures/StickerPack.js | 95 + .../src/structures/StringSelectMenuBuilder.js | 79 + .../structures/StringSelectMenuComponent.js | 20 + .../structures/StringSelectMenuInteraction.js | 21 + .../StringSelectMenuOptionBuilder.js | 49 + .../discord.js/src/structures/Subscription.js | 117 + .../discord.js/src/structures/Team.js | 117 + .../discord.js/src/structures/TeamMember.js | 79 + .../discord.js/src/structures/TextChannel.js | 33 + .../src/structures/TextDisplayComponent.js | 20 + .../src/structures/TextInputBuilder.js | 31 + .../src/structures/TextInputComponent.js | 29 + .../src/structures/ThreadChannel.js | 612 + .../discord.js/src/structures/ThreadMember.js | 119 + .../src/structures/ThreadOnlyChannel.js | 249 + .../src/structures/ThumbnailComponent.js | 49 + .../discord.js/src/structures/Typing.js | 74 + .../src/structures/UnfurledMediaItem.js | 33 + .../discord.js/src/structures/User.js | 505 + .../UserContextMenuCommandInteraction.js | 29 + .../src/structures/UserSelectMenuBuilder.js | 31 + .../src/structures/UserSelectMenuComponent.js | 11 + .../structures/UserSelectMenuInteraction.js | 51 + .../discord.js/src/structures/VoiceChannel.js | 116 + .../src/structures/VoiceChannelEffect.js | 78 + .../discord.js/src/structures/VoiceRegion.js | 46 + .../discord.js/src/structures/VoiceState.js | 312 + .../discord.js/src/structures/Webhook.js | 489 + .../src/structures/WelcomeChannel.js | 60 + .../src/structures/WelcomeScreen.js | 49 + .../discord.js/src/structures/Widget.js | 97 + .../discord.js/src/structures/WidgetMember.js | 99 + .../src/structures/interfaces/Application.js | 158 + .../src/structures/interfaces/Collector.js | 335 + .../interfaces/InteractionResponses.js | 494 + .../structures/interfaces/TextBasedChannel.js | 447 + node_modules/discord.js/src/util/APITypes.js | 686 + .../src/util/ActivityFlagsBitField.js | 26 + .../src/util/ApplicationFlagsBitField.js | 41 + .../src/util/AttachmentFlagsBitField.js | 26 + node_modules/discord.js/src/util/BitField.js | 178 + .../src/util/ChannelFlagsBitField.js | 41 + node_modules/discord.js/src/util/Channels.js | 161 + node_modules/discord.js/src/util/Colors.js | 73 + .../discord.js/src/util/Components.js | 350 + node_modules/discord.js/src/util/Constants.js | 283 + .../discord.js/src/util/DataResolver.js | 142 + node_modules/discord.js/src/util/Enums.js | 13 + node_modules/discord.js/src/util/Events.js | 190 + .../discord.js/src/util/Formatters.js | 413 + .../src/util/GuildMemberFlagsBitField.js | 42 + .../discord.js/src/util/IntentsBitField.js | 34 + .../src/util/InviteFlagsBitField.js | 28 + .../discord.js/src/util/LimitedCollection.js | 68 + .../src/util/MessageFlagsBitField.js | 41 + node_modules/discord.js/src/util/Options.js | 239 + node_modules/discord.js/src/util/Partials.js | 50 + .../src/util/PermissionsBitField.js | 104 + .../discord.js/src/util/RoleFlagsBitField.js | 26 + .../discord.js/src/util/SKUFlagsBitField.js | 26 + .../discord.js/src/util/ShardEvents.js | 29 + node_modules/discord.js/src/util/Status.js | 33 + node_modules/discord.js/src/util/Sweepers.js | 487 + node_modules/discord.js/src/util/Symbols.js | 3 + .../src/util/SystemChannelFlagsBitField.js | 43 + .../src/util/ThreadMemberFlagsBitField.js | 32 + .../discord.js/src/util/Transformers.js | 125 + .../discord.js/src/util/UserFlagsBitField.js | 32 + node_modules/discord.js/src/util/Util.js | 558 + .../src/util/WebSocketShardEvents.js | 25 + node_modules/discord.js/typings/index.d.mts | 8125 + node_modules/discord.js/typings/index.d.ts | 8125 + .../discord.js/typings/rawDataTypes.d.mts | 211 + .../discord.js/typings/rawDataTypes.d.ts | 211 + node_modules/dotenv/CHANGELOG.md | 520 + node_modules/dotenv/LICENSE | 23 + node_modules/dotenv/README-es.md | 411 + node_modules/dotenv/README.md | 645 + node_modules/dotenv/SECURITY.md | 1 + node_modules/dotenv/config.d.ts | 1 + node_modules/dotenv/config.js | 9 + node_modules/dotenv/lib/cli-options.js | 17 + node_modules/dotenv/lib/env-options.js | 28 + node_modules/dotenv/lib/main.d.ts | 162 + node_modules/dotenv/lib/main.js | 386 + node_modules/dotenv/package.json | 62 + node_modules/dunder-proto/.eslintrc | 5 + node_modules/dunder-proto/.github/FUNDING.yml | 12 + node_modules/dunder-proto/.nycrc | 13 + node_modules/dunder-proto/CHANGELOG.md | 24 + node_modules/dunder-proto/LICENSE | 21 + node_modules/dunder-proto/README.md | 54 + node_modules/dunder-proto/get.d.ts | 5 + node_modules/dunder-proto/get.js | 30 + node_modules/dunder-proto/package.json | 76 + node_modules/dunder-proto/set.d.ts | 5 + node_modules/dunder-proto/set.js | 35 + node_modules/dunder-proto/test/get.js | 34 + node_modules/dunder-proto/test/index.js | 4 + node_modules/dunder-proto/test/set.js | 50 + node_modules/dunder-proto/tsconfig.json | 9 + node_modules/ee-first/LICENSE | 22 + node_modules/ee-first/README.md | 80 + node_modules/ee-first/index.js | 95 + node_modules/ee-first/package.json | 29 + node_modules/encodeurl/LICENSE | 22 + node_modules/encodeurl/README.md | 109 + node_modules/encodeurl/index.js | 60 + node_modules/encodeurl/package.json | 40 + node_modules/es-define-property/.eslintrc | 13 + .../es-define-property/.github/FUNDING.yml | 12 + node_modules/es-define-property/.nycrc | 9 + node_modules/es-define-property/CHANGELOG.md | 29 + node_modules/es-define-property/LICENSE | 21 + node_modules/es-define-property/README.md | 49 + node_modules/es-define-property/index.d.ts | 3 + node_modules/es-define-property/index.js | 14 + node_modules/es-define-property/package.json | 81 + node_modules/es-define-property/test/index.js | 56 + node_modules/es-define-property/tsconfig.json | 10 + node_modules/es-errors/.eslintrc | 5 + node_modules/es-errors/.github/FUNDING.yml | 12 + node_modules/es-errors/CHANGELOG.md | 40 + node_modules/es-errors/LICENSE | 21 + node_modules/es-errors/README.md | 55 + node_modules/es-errors/eval.d.ts | 3 + node_modules/es-errors/eval.js | 4 + node_modules/es-errors/index.d.ts | 3 + node_modules/es-errors/index.js | 4 + node_modules/es-errors/package.json | 80 + node_modules/es-errors/range.d.ts | 3 + node_modules/es-errors/range.js | 4 + node_modules/es-errors/ref.d.ts | 3 + node_modules/es-errors/ref.js | 4 + node_modules/es-errors/syntax.d.ts | 3 + node_modules/es-errors/syntax.js | 4 + node_modules/es-errors/test/index.js | 19 + node_modules/es-errors/tsconfig.json | 49 + node_modules/es-errors/type.d.ts | 3 + node_modules/es-errors/type.js | 4 + node_modules/es-errors/uri.d.ts | 3 + node_modules/es-errors/uri.js | 4 + node_modules/es-object-atoms/.eslintrc | 16 + .../es-object-atoms/.github/FUNDING.yml | 12 + node_modules/es-object-atoms/CHANGELOG.md | 37 + node_modules/es-object-atoms/LICENSE | 21 + node_modules/es-object-atoms/README.md | 63 + .../RequireObjectCoercible.d.ts | 3 + .../es-object-atoms/RequireObjectCoercible.js | 11 + node_modules/es-object-atoms/ToObject.d.ts | 7 + node_modules/es-object-atoms/ToObject.js | 10 + node_modules/es-object-atoms/index.d.ts | 3 + node_modules/es-object-atoms/index.js | 4 + node_modules/es-object-atoms/isObject.d.ts | 3 + node_modules/es-object-atoms/isObject.js | 6 + node_modules/es-object-atoms/package.json | 80 + node_modules/es-object-atoms/test/index.js | 38 + node_modules/es-object-atoms/tsconfig.json | 6 + node_modules/escape-html/LICENSE | 24 + node_modules/escape-html/Readme.md | 43 + node_modules/escape-html/index.js | 78 + node_modules/escape-html/package.json | 24 + node_modules/etag/HISTORY.md | 83 + node_modules/etag/LICENSE | 22 + node_modules/etag/README.md | 159 + node_modules/etag/index.js | 131 + node_modules/etag/package.json | 47 + node_modules/express/History.md | 3667 + node_modules/express/LICENSE | 24 + node_modules/express/Readme.md | 260 + node_modules/express/index.js | 11 + node_modules/express/lib/application.js | 661 + node_modules/express/lib/express.js | 116 + node_modules/express/lib/middleware/init.js | 43 + node_modules/express/lib/middleware/query.js | 47 + node_modules/express/lib/request.js | 525 + node_modules/express/lib/response.js | 1179 + node_modules/express/lib/router/index.js | 673 + node_modules/express/lib/router/layer.js | 181 + node_modules/express/lib/router/route.js | 230 + node_modules/express/lib/utils.js | 303 + node_modules/express/lib/view.js | 182 + node_modules/express/package.json | 102 + node_modules/fast-deep-equal/LICENSE | 21 + node_modules/fast-deep-equal/README.md | 96 + node_modules/fast-deep-equal/es6/index.d.ts | 2 + node_modules/fast-deep-equal/es6/index.js | 72 + node_modules/fast-deep-equal/es6/react.d.ts | 2 + node_modules/fast-deep-equal/es6/react.js | 79 + node_modules/fast-deep-equal/index.d.ts | 4 + node_modules/fast-deep-equal/index.js | 46 + node_modules/fast-deep-equal/package.json | 61 + node_modules/fast-deep-equal/react.d.ts | 2 + node_modules/fast-deep-equal/react.js | 53 + node_modules/finalhandler/HISTORY.md | 216 + node_modules/finalhandler/LICENSE | 22 + node_modules/finalhandler/README.md | 147 + node_modules/finalhandler/SECURITY.md | 25 + node_modules/finalhandler/index.js | 341 + node_modules/finalhandler/package.json | 47 + node_modules/forwarded/HISTORY.md | 21 + node_modules/forwarded/LICENSE | 22 + node_modules/forwarded/README.md | 57 + node_modules/forwarded/index.js | 90 + node_modules/forwarded/package.json | 45 + node_modules/fresh/HISTORY.md | 70 + node_modules/fresh/LICENSE | 23 + node_modules/fresh/README.md | 119 + node_modules/fresh/index.js | 137 + node_modules/fresh/package.json | 46 + node_modules/function-bind/.eslintrc | 21 + .../function-bind/.github/FUNDING.yml | 12 + .../function-bind/.github/SECURITY.md | 3 + node_modules/function-bind/.nycrc | 13 + node_modules/function-bind/CHANGELOG.md | 136 + node_modules/function-bind/LICENSE | 20 + node_modules/function-bind/README.md | 46 + node_modules/function-bind/implementation.js | 84 + node_modules/function-bind/index.js | 5 + node_modules/function-bind/package.json | 87 + node_modules/function-bind/test/.eslintrc | 9 + node_modules/function-bind/test/index.js | 252 + node_modules/get-intrinsic/.eslintrc | 42 + .../get-intrinsic/.github/FUNDING.yml | 12 + node_modules/get-intrinsic/.nycrc | 9 + node_modules/get-intrinsic/CHANGELOG.md | 186 + node_modules/get-intrinsic/LICENSE | 21 + node_modules/get-intrinsic/README.md | 71 + node_modules/get-intrinsic/index.js | 378 + node_modules/get-intrinsic/package.json | 97 + .../get-intrinsic/test/GetIntrinsic.js | 274 + node_modules/get-proto/.eslintrc | 10 + node_modules/get-proto/.github/FUNDING.yml | 12 + node_modules/get-proto/.nycrc | 9 + node_modules/get-proto/CHANGELOG.md | 21 + node_modules/get-proto/LICENSE | 21 + .../get-proto/Object.getPrototypeOf.d.ts | 5 + .../get-proto/Object.getPrototypeOf.js | 6 + node_modules/get-proto/README.md | 50 + .../get-proto/Reflect.getPrototypeOf.d.ts | 3 + .../get-proto/Reflect.getPrototypeOf.js | 4 + node_modules/get-proto/index.d.ts | 5 + node_modules/get-proto/index.js | 27 + node_modules/get-proto/package.json | 81 + node_modules/get-proto/test/index.js | 68 + node_modules/get-proto/tsconfig.json | 9 + node_modules/gopd/.eslintrc | 16 + node_modules/gopd/.github/FUNDING.yml | 12 + node_modules/gopd/CHANGELOG.md | 45 + node_modules/gopd/LICENSE | 21 + node_modules/gopd/README.md | 40 + node_modules/gopd/gOPD.d.ts | 1 + node_modules/gopd/gOPD.js | 4 + node_modules/gopd/index.d.ts | 5 + node_modules/gopd/index.js | 15 + node_modules/gopd/package.json | 77 + node_modules/gopd/test/index.js | 36 + node_modules/gopd/tsconfig.json | 9 + node_modules/has-symbols/.eslintrc | 11 + node_modules/has-symbols/.github/FUNDING.yml | 12 + node_modules/has-symbols/.nycrc | 9 + node_modules/has-symbols/CHANGELOG.md | 91 + node_modules/has-symbols/LICENSE | 21 + node_modules/has-symbols/README.md | 46 + node_modules/has-symbols/index.d.ts | 3 + node_modules/has-symbols/index.js | 14 + node_modules/has-symbols/package.json | 111 + node_modules/has-symbols/shams.d.ts | 3 + node_modules/has-symbols/shams.js | 45 + node_modules/has-symbols/test/index.js | 22 + .../has-symbols/test/shams/core-js.js | 29 + .../test/shams/get-own-property-symbols.js | 29 + node_modules/has-symbols/test/tests.js | 58 + node_modules/has-symbols/tsconfig.json | 10 + node_modules/hasown/.eslintrc | 5 + node_modules/hasown/.github/FUNDING.yml | 12 + node_modules/hasown/.nycrc | 13 + node_modules/hasown/CHANGELOG.md | 40 + node_modules/hasown/LICENSE | 21 + node_modules/hasown/README.md | 40 + node_modules/hasown/index.d.ts | 3 + node_modules/hasown/index.js | 8 + node_modules/hasown/package.json | 92 + node_modules/hasown/tsconfig.json | 6 + node_modules/http-errors/HISTORY.md | 186 + node_modules/http-errors/LICENSE | 23 + node_modules/http-errors/README.md | 169 + node_modules/http-errors/index.js | 290 + node_modules/http-errors/package.json | 54 + node_modules/iconv-lite/Changelog.md | 162 + node_modules/iconv-lite/LICENSE | 21 + node_modules/iconv-lite/README.md | 156 + .../iconv-lite/encodings/dbcs-codec.js | 555 + .../iconv-lite/encodings/dbcs-data.js | 176 + node_modules/iconv-lite/encodings/index.js | 22 + node_modules/iconv-lite/encodings/internal.js | 188 + .../iconv-lite/encodings/sbcs-codec.js | 72 + .../encodings/sbcs-data-generated.js | 451 + .../iconv-lite/encodings/sbcs-data.js | 174 + .../encodings/tables/big5-added.json | 122 + .../iconv-lite/encodings/tables/cp936.json | 264 + .../iconv-lite/encodings/tables/cp949.json | 273 + .../iconv-lite/encodings/tables/cp950.json | 177 + .../iconv-lite/encodings/tables/eucjp.json | 182 + .../encodings/tables/gb18030-ranges.json | 1 + .../encodings/tables/gbk-added.json | 55 + .../iconv-lite/encodings/tables/shiftjis.json | 125 + node_modules/iconv-lite/encodings/utf16.js | 177 + node_modules/iconv-lite/encodings/utf7.js | 290 + node_modules/iconv-lite/lib/bom-handling.js | 52 + node_modules/iconv-lite/lib/extend-node.js | 217 + node_modules/iconv-lite/lib/index.d.ts | 24 + node_modules/iconv-lite/lib/index.js | 153 + node_modules/iconv-lite/lib/streams.js | 121 + node_modules/iconv-lite/package.json | 46 + node_modules/inherits/LICENSE | 16 + node_modules/inherits/README.md | 42 + node_modules/inherits/inherits.js | 9 + node_modules/inherits/inherits_browser.js | 27 + node_modules/inherits/package.json | 29 + node_modules/ipaddr.js/LICENSE | 19 + node_modules/ipaddr.js/README.md | 233 + node_modules/ipaddr.js/ipaddr.min.js | 1 + node_modules/ipaddr.js/lib/ipaddr.js | 673 + node_modules/ipaddr.js/lib/ipaddr.js.d.ts | 68 + node_modules/ipaddr.js/package.json | 35 + node_modules/lodash.snakecase/LICENSE | 47 + node_modules/lodash.snakecase/README.md | 18 + node_modules/lodash.snakecase/index.js | 435 + node_modules/lodash.snakecase/package.json | 17 + node_modules/lodash/LICENSE | 47 + node_modules/lodash/README.md | 39 + node_modules/lodash/_DataView.js | 7 + node_modules/lodash/_Hash.js | 32 + node_modules/lodash/_LazyWrapper.js | 28 + node_modules/lodash/_ListCache.js | 32 + node_modules/lodash/_LodashWrapper.js | 22 + node_modules/lodash/_Map.js | 7 + node_modules/lodash/_MapCache.js | 32 + node_modules/lodash/_Promise.js | 7 + node_modules/lodash/_Set.js | 7 + node_modules/lodash/_SetCache.js | 27 + node_modules/lodash/_Stack.js | 27 + node_modules/lodash/_Symbol.js | 6 + node_modules/lodash/_Uint8Array.js | 6 + node_modules/lodash/_WeakMap.js | 7 + node_modules/lodash/_apply.js | 21 + node_modules/lodash/_arrayAggregator.js | 22 + node_modules/lodash/_arrayEach.js | 22 + node_modules/lodash/_arrayEachRight.js | 21 + node_modules/lodash/_arrayEvery.js | 23 + node_modules/lodash/_arrayFilter.js | 25 + node_modules/lodash/_arrayIncludes.js | 17 + node_modules/lodash/_arrayIncludesWith.js | 22 + node_modules/lodash/_arrayLikeKeys.js | 49 + node_modules/lodash/_arrayMap.js | 21 + node_modules/lodash/_arrayPush.js | 20 + node_modules/lodash/_arrayReduce.js | 26 + node_modules/lodash/_arrayReduceRight.js | 24 + node_modules/lodash/_arraySample.js | 15 + node_modules/lodash/_arraySampleSize.js | 17 + node_modules/lodash/_arrayShuffle.js | 15 + node_modules/lodash/_arraySome.js | 23 + node_modules/lodash/_asciiSize.js | 12 + node_modules/lodash/_asciiToArray.js | 12 + node_modules/lodash/_asciiWords.js | 15 + node_modules/lodash/_assignMergeValue.js | 20 + node_modules/lodash/_assignValue.js | 28 + node_modules/lodash/_assocIndexOf.js | 21 + node_modules/lodash/_baseAggregator.js | 21 + node_modules/lodash/_baseAssign.js | 17 + node_modules/lodash/_baseAssignIn.js | 17 + node_modules/lodash/_baseAssignValue.js | 25 + node_modules/lodash/_baseAt.js | 23 + node_modules/lodash/_baseClamp.js | 22 + node_modules/lodash/_baseClone.js | 166 + node_modules/lodash/_baseConforms.js | 18 + node_modules/lodash/_baseConformsTo.js | 27 + node_modules/lodash/_baseCreate.js | 30 + node_modules/lodash/_baseDelay.js | 21 + node_modules/lodash/_baseDifference.js | 67 + node_modules/lodash/_baseEach.js | 14 + node_modules/lodash/_baseEachRight.js | 14 + node_modules/lodash/_baseEvery.js | 21 + node_modules/lodash/_baseExtremum.js | 32 + node_modules/lodash/_baseFill.js | 32 + node_modules/lodash/_baseFilter.js | 21 + node_modules/lodash/_baseFindIndex.js | 24 + node_modules/lodash/_baseFindKey.js | 23 + node_modules/lodash/_baseFlatten.js | 38 + node_modules/lodash/_baseFor.js | 16 + node_modules/lodash/_baseForOwn.js | 16 + node_modules/lodash/_baseForOwnRight.js | 16 + node_modules/lodash/_baseForRight.js | 15 + node_modules/lodash/_baseFunctions.js | 19 + node_modules/lodash/_baseGet.js | 24 + node_modules/lodash/_baseGetAllKeys.js | 20 + node_modules/lodash/_baseGetTag.js | 28 + node_modules/lodash/_baseGt.js | 14 + node_modules/lodash/_baseHas.js | 19 + node_modules/lodash/_baseHasIn.js | 13 + node_modules/lodash/_baseInRange.js | 18 + node_modules/lodash/_baseIndexOf.js | 20 + node_modules/lodash/_baseIndexOfWith.js | 23 + node_modules/lodash/_baseIntersection.js | 74 + node_modules/lodash/_baseInverter.js | 21 + node_modules/lodash/_baseInvoke.js | 24 + node_modules/lodash/_baseIsArguments.js | 18 + node_modules/lodash/_baseIsArrayBuffer.js | 17 + node_modules/lodash/_baseIsDate.js | 18 + node_modules/lodash/_baseIsEqual.js | 28 + node_modules/lodash/_baseIsEqualDeep.js | 83 + node_modules/lodash/_baseIsMap.js | 18 + node_modules/lodash/_baseIsMatch.js | 62 + node_modules/lodash/_baseIsNaN.js | 12 + node_modules/lodash/_baseIsNative.js | 47 + node_modules/lodash/_baseIsRegExp.js | 18 + node_modules/lodash/_baseIsSet.js | 18 + node_modules/lodash/_baseIsTypedArray.js | 60 + node_modules/lodash/_baseIteratee.js | 31 + node_modules/lodash/_baseKeys.js | 30 + node_modules/lodash/_baseKeysIn.js | 33 + node_modules/lodash/_baseLodash.js | 10 + node_modules/lodash/_baseLt.js | 14 + node_modules/lodash/_baseMap.js | 22 + node_modules/lodash/_baseMatches.js | 22 + node_modules/lodash/_baseMatchesProperty.js | 33 + node_modules/lodash/_baseMean.js | 20 + node_modules/lodash/_baseMerge.js | 42 + node_modules/lodash/_baseMergeDeep.js | 94 + node_modules/lodash/_baseNth.js | 20 + node_modules/lodash/_baseOrderBy.js | 49 + node_modules/lodash/_basePick.js | 19 + node_modules/lodash/_basePickBy.js | 30 + node_modules/lodash/_baseProperty.js | 14 + node_modules/lodash/_basePropertyDeep.js | 16 + node_modules/lodash/_basePropertyOf.js | 14 + node_modules/lodash/_basePullAll.js | 51 + node_modules/lodash/_basePullAt.js | 37 + node_modules/lodash/_baseRandom.js | 18 + node_modules/lodash/_baseRange.js | 28 + node_modules/lodash/_baseReduce.js | 23 + node_modules/lodash/_baseRepeat.js | 35 + node_modules/lodash/_baseRest.js | 17 + node_modules/lodash/_baseSample.js | 15 + node_modules/lodash/_baseSampleSize.js | 18 + node_modules/lodash/_baseSet.js | 51 + node_modules/lodash/_baseSetData.js | 17 + node_modules/lodash/_baseSetToString.js | 22 + node_modules/lodash/_baseShuffle.js | 15 + node_modules/lodash/_baseSlice.js | 31 + node_modules/lodash/_baseSome.js | 22 + node_modules/lodash/_baseSortBy.js | 21 + node_modules/lodash/_baseSortedIndex.js | 42 + node_modules/lodash/_baseSortedIndexBy.js | 67 + node_modules/lodash/_baseSortedUniq.js | 30 + node_modules/lodash/_baseSum.js | 24 + node_modules/lodash/_baseTimes.js | 20 + node_modules/lodash/_baseToNumber.js | 24 + node_modules/lodash/_baseToPairs.js | 18 + node_modules/lodash/_baseToString.js | 37 + node_modules/lodash/_baseTrim.js | 19 + node_modules/lodash/_baseUnary.js | 14 + node_modules/lodash/_baseUniq.js | 72 + node_modules/lodash/_baseUnset.js | 52 + node_modules/lodash/_baseUpdate.js | 18 + node_modules/lodash/_baseValues.js | 19 + node_modules/lodash/_baseWhile.js | 26 + node_modules/lodash/_baseWrapperValue.js | 25 + node_modules/lodash/_baseXor.js | 36 + node_modules/lodash/_baseZipObject.js | 23 + node_modules/lodash/_cacheHas.js | 13 + node_modules/lodash/_castArrayLikeObject.js | 14 + node_modules/lodash/_castFunction.js | 14 + node_modules/lodash/_castPath.js | 21 + node_modules/lodash/_castRest.js | 14 + node_modules/lodash/_castSlice.js | 18 + node_modules/lodash/_charsEndIndex.js | 19 + node_modules/lodash/_charsStartIndex.js | 20 + node_modules/lodash/_cloneArrayBuffer.js | 16 + node_modules/lodash/_cloneBuffer.js | 35 + node_modules/lodash/_cloneDataView.js | 16 + node_modules/lodash/_cloneRegExp.js | 17 + node_modules/lodash/_cloneSymbol.js | 18 + node_modules/lodash/_cloneTypedArray.js | 16 + node_modules/lodash/_compareAscending.js | 41 + node_modules/lodash/_compareMultiple.js | 44 + node_modules/lodash/_composeArgs.js | 39 + node_modules/lodash/_composeArgsRight.js | 41 + node_modules/lodash/_copyArray.js | 20 + node_modules/lodash/_copyObject.js | 40 + node_modules/lodash/_copySymbols.js | 16 + node_modules/lodash/_copySymbolsIn.js | 16 + node_modules/lodash/_coreJsData.js | 6 + node_modules/lodash/_countHolders.js | 21 + node_modules/lodash/_createAggregator.js | 23 + node_modules/lodash/_createAssigner.js | 37 + node_modules/lodash/_createBaseEach.js | 32 + node_modules/lodash/_createBaseFor.js | 25 + node_modules/lodash/_createBind.js | 28 + node_modules/lodash/_createCaseFirst.js | 33 + node_modules/lodash/_createCompounder.js | 24 + node_modules/lodash/_createCtor.js | 37 + node_modules/lodash/_createCurry.js | 46 + node_modules/lodash/_createFind.js | 25 + node_modules/lodash/_createFlow.js | 78 + node_modules/lodash/_createHybrid.js | 92 + node_modules/lodash/_createInverter.js | 17 + node_modules/lodash/_createMathOperation.js | 38 + node_modules/lodash/_createOver.js | 27 + node_modules/lodash/_createPadding.js | 33 + node_modules/lodash/_createPartial.js | 43 + node_modules/lodash/_createRange.js | 30 + node_modules/lodash/_createRecurry.js | 56 + .../lodash/_createRelationalOperation.js | 20 + node_modules/lodash/_createRound.js | 35 + node_modules/lodash/_createSet.js | 19 + node_modules/lodash/_createToPairs.js | 30 + node_modules/lodash/_createWrap.js | 106 + .../lodash/_customDefaultsAssignIn.js | 29 + node_modules/lodash/_customDefaultsMerge.js | 28 + node_modules/lodash/_customOmitClone.js | 16 + node_modules/lodash/_deburrLetter.js | 71 + node_modules/lodash/_defineProperty.js | 11 + node_modules/lodash/_equalArrays.js | 84 + node_modules/lodash/_equalByTag.js | 112 + node_modules/lodash/_equalObjects.js | 90 + node_modules/lodash/_escapeHtmlChar.js | 21 + node_modules/lodash/_escapeStringChar.js | 22 + node_modules/lodash/_flatRest.js | 16 + node_modules/lodash/_freeGlobal.js | 4 + node_modules/lodash/_getAllKeys.js | 16 + node_modules/lodash/_getAllKeysIn.js | 17 + node_modules/lodash/_getData.js | 15 + node_modules/lodash/_getFuncName.js | 31 + node_modules/lodash/_getHolder.js | 13 + node_modules/lodash/_getMapData.js | 18 + node_modules/lodash/_getMatchData.js | 24 + node_modules/lodash/_getNative.js | 17 + node_modules/lodash/_getPrototype.js | 6 + node_modules/lodash/_getRawTag.js | 46 + node_modules/lodash/_getSymbols.js | 30 + node_modules/lodash/_getSymbolsIn.js | 25 + node_modules/lodash/_getTag.js | 58 + node_modules/lodash/_getValue.js | 13 + node_modules/lodash/_getView.js | 33 + node_modules/lodash/_getWrapDetails.js | 17 + node_modules/lodash/_hasPath.js | 39 + node_modules/lodash/_hasUnicode.js | 26 + node_modules/lodash/_hasUnicodeWord.js | 15 + node_modules/lodash/_hashClear.js | 15 + node_modules/lodash/_hashDelete.js | 17 + node_modules/lodash/_hashGet.js | 30 + node_modules/lodash/_hashHas.js | 23 + node_modules/lodash/_hashSet.js | 23 + node_modules/lodash/_initCloneArray.js | 26 + node_modules/lodash/_initCloneByTag.js | 77 + node_modules/lodash/_initCloneObject.js | 18 + node_modules/lodash/_insertWrapDetails.js | 23 + node_modules/lodash/_isFlattenable.js | 20 + node_modules/lodash/_isIndex.js | 25 + node_modules/lodash/_isIterateeCall.js | 30 + node_modules/lodash/_isKey.js | 29 + node_modules/lodash/_isKeyable.js | 15 + node_modules/lodash/_isLaziable.js | 28 + node_modules/lodash/_isMaskable.js | 14 + node_modules/lodash/_isMasked.js | 20 + node_modules/lodash/_isPrototype.js | 18 + node_modules/lodash/_isStrictComparable.js | 15 + node_modules/lodash/_iteratorToArray.js | 18 + node_modules/lodash/_lazyClone.js | 23 + node_modules/lodash/_lazyReverse.js | 23 + node_modules/lodash/_lazyValue.js | 69 + node_modules/lodash/_listCacheClear.js | 13 + node_modules/lodash/_listCacheDelete.js | 35 + node_modules/lodash/_listCacheGet.js | 19 + node_modules/lodash/_listCacheHas.js | 16 + node_modules/lodash/_listCacheSet.js | 26 + node_modules/lodash/_mapCacheClear.js | 21 + node_modules/lodash/_mapCacheDelete.js | 18 + node_modules/lodash/_mapCacheGet.js | 16 + node_modules/lodash/_mapCacheHas.js | 16 + node_modules/lodash/_mapCacheSet.js | 22 + node_modules/lodash/_mapToArray.js | 18 + .../lodash/_matchesStrictComparable.js | 20 + node_modules/lodash/_memoizeCapped.js | 26 + node_modules/lodash/_mergeData.js | 90 + node_modules/lodash/_metaMap.js | 6 + node_modules/lodash/_nativeCreate.js | 6 + node_modules/lodash/_nativeKeys.js | 6 + node_modules/lodash/_nativeKeysIn.js | 20 + node_modules/lodash/_nodeUtil.js | 30 + node_modules/lodash/_objectToString.js | 22 + node_modules/lodash/_overArg.js | 15 + node_modules/lodash/_overRest.js | 36 + node_modules/lodash/_parent.js | 16 + node_modules/lodash/_reEscape.js | 4 + node_modules/lodash/_reEvaluate.js | 4 + node_modules/lodash/_reInterpolate.js | 4 + node_modules/lodash/_realNames.js | 4 + node_modules/lodash/_reorder.js | 29 + node_modules/lodash/_replaceHolders.js | 29 + node_modules/lodash/_root.js | 9 + node_modules/lodash/_safeGet.js | 21 + node_modules/lodash/_setCacheAdd.js | 19 + node_modules/lodash/_setCacheHas.js | 14 + node_modules/lodash/_setData.js | 20 + node_modules/lodash/_setToArray.js | 18 + node_modules/lodash/_setToPairs.js | 18 + node_modules/lodash/_setToString.js | 14 + node_modules/lodash/_setWrapToString.js | 21 + node_modules/lodash/_shortOut.js | 37 + node_modules/lodash/_shuffleSelf.js | 28 + node_modules/lodash/_stackClear.js | 15 + node_modules/lodash/_stackDelete.js | 18 + node_modules/lodash/_stackGet.js | 14 + node_modules/lodash/_stackHas.js | 14 + node_modules/lodash/_stackSet.js | 34 + node_modules/lodash/_strictIndexOf.js | 23 + node_modules/lodash/_strictLastIndexOf.js | 21 + node_modules/lodash/_stringSize.js | 18 + node_modules/lodash/_stringToArray.js | 18 + node_modules/lodash/_stringToPath.js | 27 + node_modules/lodash/_toKey.js | 21 + node_modules/lodash/_toSource.js | 26 + node_modules/lodash/_trimmedEndIndex.js | 19 + node_modules/lodash/_unescapeHtmlChar.js | 21 + node_modules/lodash/_unicodeSize.js | 44 + node_modules/lodash/_unicodeToArray.js | 40 + node_modules/lodash/_unicodeWords.js | 69 + node_modules/lodash/_updateWrapDetails.js | 46 + node_modules/lodash/_wrapperClone.js | 23 + node_modules/lodash/add.js | 22 + node_modules/lodash/after.js | 42 + node_modules/lodash/array.js | 67 + node_modules/lodash/ary.js | 29 + node_modules/lodash/assign.js | 58 + node_modules/lodash/assignIn.js | 40 + node_modules/lodash/assignInWith.js | 38 + node_modules/lodash/assignWith.js | 37 + node_modules/lodash/at.js | 23 + node_modules/lodash/attempt.js | 35 + node_modules/lodash/before.js | 40 + node_modules/lodash/bind.js | 57 + node_modules/lodash/bindAll.js | 41 + node_modules/lodash/bindKey.js | 68 + node_modules/lodash/camelCase.js | 29 + node_modules/lodash/capitalize.js | 23 + node_modules/lodash/castArray.js | 44 + node_modules/lodash/ceil.js | 26 + node_modules/lodash/chain.js | 38 + node_modules/lodash/chunk.js | 50 + node_modules/lodash/clamp.js | 39 + node_modules/lodash/clone.js | 36 + node_modules/lodash/cloneDeep.js | 29 + node_modules/lodash/cloneDeepWith.js | 40 + node_modules/lodash/cloneWith.js | 42 + node_modules/lodash/collection.js | 30 + node_modules/lodash/commit.js | 33 + node_modules/lodash/compact.js | 31 + node_modules/lodash/concat.js | 43 + node_modules/lodash/cond.js | 60 + node_modules/lodash/conforms.js | 35 + node_modules/lodash/conformsTo.js | 32 + node_modules/lodash/constant.js | 26 + node_modules/lodash/core.js | 3877 + node_modules/lodash/core.min.js | 30 + node_modules/lodash/countBy.js | 40 + node_modules/lodash/create.js | 43 + node_modules/lodash/curry.js | 57 + node_modules/lodash/curryRight.js | 54 + node_modules/lodash/date.js | 3 + node_modules/lodash/debounce.js | 191 + node_modules/lodash/deburr.js | 45 + node_modules/lodash/defaultTo.js | 25 + node_modules/lodash/defaults.js | 64 + node_modules/lodash/defaultsDeep.js | 30 + node_modules/lodash/defer.js | 26 + node_modules/lodash/delay.js | 28 + node_modules/lodash/difference.js | 33 + node_modules/lodash/differenceBy.js | 44 + node_modules/lodash/differenceWith.js | 40 + node_modules/lodash/divide.js | 22 + node_modules/lodash/drop.js | 38 + node_modules/lodash/dropRight.js | 39 + node_modules/lodash/dropRightWhile.js | 45 + node_modules/lodash/dropWhile.js | 45 + node_modules/lodash/each.js | 1 + node_modules/lodash/eachRight.js | 1 + node_modules/lodash/endsWith.js | 43 + node_modules/lodash/entries.js | 1 + node_modules/lodash/entriesIn.js | 1 + node_modules/lodash/eq.js | 37 + node_modules/lodash/escape.js | 43 + node_modules/lodash/escapeRegExp.js | 32 + node_modules/lodash/every.js | 56 + node_modules/lodash/extend.js | 1 + node_modules/lodash/extendWith.js | 1 + node_modules/lodash/fill.js | 45 + node_modules/lodash/filter.js | 52 + node_modules/lodash/find.js | 42 + node_modules/lodash/findIndex.js | 55 + node_modules/lodash/findKey.js | 44 + node_modules/lodash/findLast.js | 25 + node_modules/lodash/findLastIndex.js | 59 + node_modules/lodash/findLastKey.js | 44 + node_modules/lodash/first.js | 1 + node_modules/lodash/flatMap.js | 29 + node_modules/lodash/flatMapDeep.js | 31 + node_modules/lodash/flatMapDepth.js | 31 + node_modules/lodash/flatten.js | 22 + node_modules/lodash/flattenDeep.js | 25 + node_modules/lodash/flattenDepth.js | 33 + node_modules/lodash/flip.js | 28 + node_modules/lodash/floor.js | 26 + node_modules/lodash/flow.js | 27 + node_modules/lodash/flowRight.js | 26 + node_modules/lodash/forEach.js | 41 + node_modules/lodash/forEachRight.js | 31 + node_modules/lodash/forIn.js | 39 + node_modules/lodash/forInRight.js | 37 + node_modules/lodash/forOwn.js | 36 + node_modules/lodash/forOwnRight.js | 34 + node_modules/lodash/fp.js | 2 + node_modules/lodash/fp/F.js | 1 + node_modules/lodash/fp/T.js | 1 + node_modules/lodash/fp/__.js | 1 + node_modules/lodash/fp/_baseConvert.js | 569 + node_modules/lodash/fp/_convertBrowser.js | 18 + node_modules/lodash/fp/_falseOptions.js | 7 + node_modules/lodash/fp/_mapping.js | 358 + node_modules/lodash/fp/_util.js | 16 + node_modules/lodash/fp/add.js | 5 + node_modules/lodash/fp/after.js | 5 + node_modules/lodash/fp/all.js | 1 + node_modules/lodash/fp/allPass.js | 1 + node_modules/lodash/fp/always.js | 1 + node_modules/lodash/fp/any.js | 1 + node_modules/lodash/fp/anyPass.js | 1 + node_modules/lodash/fp/apply.js | 1 + node_modules/lodash/fp/array.js | 2 + node_modules/lodash/fp/ary.js | 5 + node_modules/lodash/fp/assign.js | 5 + node_modules/lodash/fp/assignAll.js | 5 + node_modules/lodash/fp/assignAllWith.js | 5 + node_modules/lodash/fp/assignIn.js | 5 + node_modules/lodash/fp/assignInAll.js | 5 + node_modules/lodash/fp/assignInAllWith.js | 5 + node_modules/lodash/fp/assignInWith.js | 5 + node_modules/lodash/fp/assignWith.js | 5 + node_modules/lodash/fp/assoc.js | 1 + node_modules/lodash/fp/assocPath.js | 1 + node_modules/lodash/fp/at.js | 5 + node_modules/lodash/fp/attempt.js | 5 + node_modules/lodash/fp/before.js | 5 + node_modules/lodash/fp/bind.js | 5 + node_modules/lodash/fp/bindAll.js | 5 + node_modules/lodash/fp/bindKey.js | 5 + node_modules/lodash/fp/camelCase.js | 5 + node_modules/lodash/fp/capitalize.js | 5 + node_modules/lodash/fp/castArray.js | 5 + node_modules/lodash/fp/ceil.js | 5 + node_modules/lodash/fp/chain.js | 5 + node_modules/lodash/fp/chunk.js | 5 + node_modules/lodash/fp/clamp.js | 5 + node_modules/lodash/fp/clone.js | 5 + node_modules/lodash/fp/cloneDeep.js | 5 + node_modules/lodash/fp/cloneDeepWith.js | 5 + node_modules/lodash/fp/cloneWith.js | 5 + node_modules/lodash/fp/collection.js | 2 + node_modules/lodash/fp/commit.js | 5 + node_modules/lodash/fp/compact.js | 5 + node_modules/lodash/fp/complement.js | 1 + node_modules/lodash/fp/compose.js | 1 + node_modules/lodash/fp/concat.js | 5 + node_modules/lodash/fp/cond.js | 5 + node_modules/lodash/fp/conforms.js | 1 + node_modules/lodash/fp/conformsTo.js | 5 + node_modules/lodash/fp/constant.js | 5 + node_modules/lodash/fp/contains.js | 1 + node_modules/lodash/fp/convert.js | 18 + node_modules/lodash/fp/countBy.js | 5 + node_modules/lodash/fp/create.js | 5 + node_modules/lodash/fp/curry.js | 5 + node_modules/lodash/fp/curryN.js | 5 + node_modules/lodash/fp/curryRight.js | 5 + node_modules/lodash/fp/curryRightN.js | 5 + node_modules/lodash/fp/date.js | 2 + node_modules/lodash/fp/debounce.js | 5 + node_modules/lodash/fp/deburr.js | 5 + node_modules/lodash/fp/defaultTo.js | 5 + node_modules/lodash/fp/defaults.js | 5 + node_modules/lodash/fp/defaultsAll.js | 5 + node_modules/lodash/fp/defaultsDeep.js | 5 + node_modules/lodash/fp/defaultsDeepAll.js | 5 + node_modules/lodash/fp/defer.js | 5 + node_modules/lodash/fp/delay.js | 5 + node_modules/lodash/fp/difference.js | 5 + node_modules/lodash/fp/differenceBy.js | 5 + node_modules/lodash/fp/differenceWith.js | 5 + node_modules/lodash/fp/dissoc.js | 1 + node_modules/lodash/fp/dissocPath.js | 1 + node_modules/lodash/fp/divide.js | 5 + node_modules/lodash/fp/drop.js | 5 + node_modules/lodash/fp/dropLast.js | 1 + node_modules/lodash/fp/dropLastWhile.js | 1 + node_modules/lodash/fp/dropRight.js | 5 + node_modules/lodash/fp/dropRightWhile.js | 5 + node_modules/lodash/fp/dropWhile.js | 5 + node_modules/lodash/fp/each.js | 1 + node_modules/lodash/fp/eachRight.js | 1 + node_modules/lodash/fp/endsWith.js | 5 + node_modules/lodash/fp/entries.js | 1 + node_modules/lodash/fp/entriesIn.js | 1 + node_modules/lodash/fp/eq.js | 5 + node_modules/lodash/fp/equals.js | 1 + node_modules/lodash/fp/escape.js | 5 + node_modules/lodash/fp/escapeRegExp.js | 5 + node_modules/lodash/fp/every.js | 5 + node_modules/lodash/fp/extend.js | 1 + node_modules/lodash/fp/extendAll.js | 1 + node_modules/lodash/fp/extendAllWith.js | 1 + node_modules/lodash/fp/extendWith.js | 1 + node_modules/lodash/fp/fill.js | 5 + node_modules/lodash/fp/filter.js | 5 + node_modules/lodash/fp/find.js | 5 + node_modules/lodash/fp/findFrom.js | 5 + node_modules/lodash/fp/findIndex.js | 5 + node_modules/lodash/fp/findIndexFrom.js | 5 + node_modules/lodash/fp/findKey.js | 5 + node_modules/lodash/fp/findLast.js | 5 + node_modules/lodash/fp/findLastFrom.js | 5 + node_modules/lodash/fp/findLastIndex.js | 5 + node_modules/lodash/fp/findLastIndexFrom.js | 5 + node_modules/lodash/fp/findLastKey.js | 5 + node_modules/lodash/fp/first.js | 1 + node_modules/lodash/fp/flatMap.js | 5 + node_modules/lodash/fp/flatMapDeep.js | 5 + node_modules/lodash/fp/flatMapDepth.js | 5 + node_modules/lodash/fp/flatten.js | 5 + node_modules/lodash/fp/flattenDeep.js | 5 + node_modules/lodash/fp/flattenDepth.js | 5 + node_modules/lodash/fp/flip.js | 5 + node_modules/lodash/fp/floor.js | 5 + node_modules/lodash/fp/flow.js | 5 + node_modules/lodash/fp/flowRight.js | 5 + node_modules/lodash/fp/forEach.js | 5 + node_modules/lodash/fp/forEachRight.js | 5 + node_modules/lodash/fp/forIn.js | 5 + node_modules/lodash/fp/forInRight.js | 5 + node_modules/lodash/fp/forOwn.js | 5 + node_modules/lodash/fp/forOwnRight.js | 5 + node_modules/lodash/fp/fromPairs.js | 5 + node_modules/lodash/fp/function.js | 2 + node_modules/lodash/fp/functions.js | 5 + node_modules/lodash/fp/functionsIn.js | 5 + node_modules/lodash/fp/get.js | 5 + node_modules/lodash/fp/getOr.js | 5 + node_modules/lodash/fp/groupBy.js | 5 + node_modules/lodash/fp/gt.js | 5 + node_modules/lodash/fp/gte.js | 5 + node_modules/lodash/fp/has.js | 5 + node_modules/lodash/fp/hasIn.js | 5 + node_modules/lodash/fp/head.js | 5 + node_modules/lodash/fp/identical.js | 1 + node_modules/lodash/fp/identity.js | 5 + node_modules/lodash/fp/inRange.js | 5 + node_modules/lodash/fp/includes.js | 5 + node_modules/lodash/fp/includesFrom.js | 5 + node_modules/lodash/fp/indexBy.js | 1 + node_modules/lodash/fp/indexOf.js | 5 + node_modules/lodash/fp/indexOfFrom.js | 5 + node_modules/lodash/fp/init.js | 1 + node_modules/lodash/fp/initial.js | 5 + node_modules/lodash/fp/intersection.js | 5 + node_modules/lodash/fp/intersectionBy.js | 5 + node_modules/lodash/fp/intersectionWith.js | 5 + node_modules/lodash/fp/invert.js | 5 + node_modules/lodash/fp/invertBy.js | 5 + node_modules/lodash/fp/invertObj.js | 1 + node_modules/lodash/fp/invoke.js | 5 + node_modules/lodash/fp/invokeArgs.js | 5 + node_modules/lodash/fp/invokeArgsMap.js | 5 + node_modules/lodash/fp/invokeMap.js | 5 + node_modules/lodash/fp/isArguments.js | 5 + node_modules/lodash/fp/isArray.js | 5 + node_modules/lodash/fp/isArrayBuffer.js | 5 + node_modules/lodash/fp/isArrayLike.js | 5 + node_modules/lodash/fp/isArrayLikeObject.js | 5 + node_modules/lodash/fp/isBoolean.js | 5 + node_modules/lodash/fp/isBuffer.js | 5 + node_modules/lodash/fp/isDate.js | 5 + node_modules/lodash/fp/isElement.js | 5 + node_modules/lodash/fp/isEmpty.js | 5 + node_modules/lodash/fp/isEqual.js | 5 + node_modules/lodash/fp/isEqualWith.js | 5 + node_modules/lodash/fp/isError.js | 5 + node_modules/lodash/fp/isFinite.js | 5 + node_modules/lodash/fp/isFunction.js | 5 + node_modules/lodash/fp/isInteger.js | 5 + node_modules/lodash/fp/isLength.js | 5 + node_modules/lodash/fp/isMap.js | 5 + node_modules/lodash/fp/isMatch.js | 5 + node_modules/lodash/fp/isMatchWith.js | 5 + node_modules/lodash/fp/isNaN.js | 5 + node_modules/lodash/fp/isNative.js | 5 + node_modules/lodash/fp/isNil.js | 5 + node_modules/lodash/fp/isNull.js | 5 + node_modules/lodash/fp/isNumber.js | 5 + node_modules/lodash/fp/isObject.js | 5 + node_modules/lodash/fp/isObjectLike.js | 5 + node_modules/lodash/fp/isPlainObject.js | 5 + node_modules/lodash/fp/isRegExp.js | 5 + node_modules/lodash/fp/isSafeInteger.js | 5 + node_modules/lodash/fp/isSet.js | 5 + node_modules/lodash/fp/isString.js | 5 + node_modules/lodash/fp/isSymbol.js | 5 + node_modules/lodash/fp/isTypedArray.js | 5 + node_modules/lodash/fp/isUndefined.js | 5 + node_modules/lodash/fp/isWeakMap.js | 5 + node_modules/lodash/fp/isWeakSet.js | 5 + node_modules/lodash/fp/iteratee.js | 5 + node_modules/lodash/fp/join.js | 5 + node_modules/lodash/fp/juxt.js | 1 + node_modules/lodash/fp/kebabCase.js | 5 + node_modules/lodash/fp/keyBy.js | 5 + node_modules/lodash/fp/keys.js | 5 + node_modules/lodash/fp/keysIn.js | 5 + node_modules/lodash/fp/lang.js | 2 + node_modules/lodash/fp/last.js | 5 + node_modules/lodash/fp/lastIndexOf.js | 5 + node_modules/lodash/fp/lastIndexOfFrom.js | 5 + node_modules/lodash/fp/lowerCase.js | 5 + node_modules/lodash/fp/lowerFirst.js | 5 + node_modules/lodash/fp/lt.js | 5 + node_modules/lodash/fp/lte.js | 5 + node_modules/lodash/fp/map.js | 5 + node_modules/lodash/fp/mapKeys.js | 5 + node_modules/lodash/fp/mapValues.js | 5 + node_modules/lodash/fp/matches.js | 1 + node_modules/lodash/fp/matchesProperty.js | 5 + node_modules/lodash/fp/math.js | 2 + node_modules/lodash/fp/max.js | 5 + node_modules/lodash/fp/maxBy.js | 5 + node_modules/lodash/fp/mean.js | 5 + node_modules/lodash/fp/meanBy.js | 5 + node_modules/lodash/fp/memoize.js | 5 + node_modules/lodash/fp/merge.js | 5 + node_modules/lodash/fp/mergeAll.js | 5 + node_modules/lodash/fp/mergeAllWith.js | 5 + node_modules/lodash/fp/mergeWith.js | 5 + node_modules/lodash/fp/method.js | 5 + node_modules/lodash/fp/methodOf.js | 5 + node_modules/lodash/fp/min.js | 5 + node_modules/lodash/fp/minBy.js | 5 + node_modules/lodash/fp/mixin.js | 5 + node_modules/lodash/fp/multiply.js | 5 + node_modules/lodash/fp/nAry.js | 1 + node_modules/lodash/fp/negate.js | 5 + node_modules/lodash/fp/next.js | 5 + node_modules/lodash/fp/noop.js | 5 + node_modules/lodash/fp/now.js | 5 + node_modules/lodash/fp/nth.js | 5 + node_modules/lodash/fp/nthArg.js | 5 + node_modules/lodash/fp/number.js | 2 + node_modules/lodash/fp/object.js | 2 + node_modules/lodash/fp/omit.js | 5 + node_modules/lodash/fp/omitAll.js | 1 + node_modules/lodash/fp/omitBy.js | 5 + node_modules/lodash/fp/once.js | 5 + node_modules/lodash/fp/orderBy.js | 5 + node_modules/lodash/fp/over.js | 5 + node_modules/lodash/fp/overArgs.js | 5 + node_modules/lodash/fp/overEvery.js | 5 + node_modules/lodash/fp/overSome.js | 5 + node_modules/lodash/fp/pad.js | 5 + node_modules/lodash/fp/padChars.js | 5 + node_modules/lodash/fp/padCharsEnd.js | 5 + node_modules/lodash/fp/padCharsStart.js | 5 + node_modules/lodash/fp/padEnd.js | 5 + node_modules/lodash/fp/padStart.js | 5 + node_modules/lodash/fp/parseInt.js | 5 + node_modules/lodash/fp/partial.js | 5 + node_modules/lodash/fp/partialRight.js | 5 + node_modules/lodash/fp/partition.js | 5 + node_modules/lodash/fp/path.js | 1 + node_modules/lodash/fp/pathEq.js | 1 + node_modules/lodash/fp/pathOr.js | 1 + node_modules/lodash/fp/paths.js | 1 + node_modules/lodash/fp/pick.js | 5 + node_modules/lodash/fp/pickAll.js | 1 + node_modules/lodash/fp/pickBy.js | 5 + node_modules/lodash/fp/pipe.js | 1 + node_modules/lodash/fp/placeholder.js | 6 + node_modules/lodash/fp/plant.js | 5 + node_modules/lodash/fp/pluck.js | 1 + node_modules/lodash/fp/prop.js | 1 + node_modules/lodash/fp/propEq.js | 1 + node_modules/lodash/fp/propOr.js | 1 + node_modules/lodash/fp/property.js | 1 + node_modules/lodash/fp/propertyOf.js | 5 + node_modules/lodash/fp/props.js | 1 + node_modules/lodash/fp/pull.js | 5 + node_modules/lodash/fp/pullAll.js | 5 + node_modules/lodash/fp/pullAllBy.js | 5 + node_modules/lodash/fp/pullAllWith.js | 5 + node_modules/lodash/fp/pullAt.js | 5 + node_modules/lodash/fp/random.js | 5 + node_modules/lodash/fp/range.js | 5 + node_modules/lodash/fp/rangeRight.js | 5 + node_modules/lodash/fp/rangeStep.js | 5 + node_modules/lodash/fp/rangeStepRight.js | 5 + node_modules/lodash/fp/rearg.js | 5 + node_modules/lodash/fp/reduce.js | 5 + node_modules/lodash/fp/reduceRight.js | 5 + node_modules/lodash/fp/reject.js | 5 + node_modules/lodash/fp/remove.js | 5 + node_modules/lodash/fp/repeat.js | 5 + node_modules/lodash/fp/replace.js | 5 + node_modules/lodash/fp/rest.js | 5 + node_modules/lodash/fp/restFrom.js | 5 + node_modules/lodash/fp/result.js | 5 + node_modules/lodash/fp/reverse.js | 5 + node_modules/lodash/fp/round.js | 5 + node_modules/lodash/fp/sample.js | 5 + node_modules/lodash/fp/sampleSize.js | 5 + node_modules/lodash/fp/seq.js | 2 + node_modules/lodash/fp/set.js | 5 + node_modules/lodash/fp/setWith.js | 5 + node_modules/lodash/fp/shuffle.js | 5 + node_modules/lodash/fp/size.js | 5 + node_modules/lodash/fp/slice.js | 5 + node_modules/lodash/fp/snakeCase.js | 5 + node_modules/lodash/fp/some.js | 5 + node_modules/lodash/fp/sortBy.js | 5 + node_modules/lodash/fp/sortedIndex.js | 5 + node_modules/lodash/fp/sortedIndexBy.js | 5 + node_modules/lodash/fp/sortedIndexOf.js | 5 + node_modules/lodash/fp/sortedLastIndex.js | 5 + node_modules/lodash/fp/sortedLastIndexBy.js | 5 + node_modules/lodash/fp/sortedLastIndexOf.js | 5 + node_modules/lodash/fp/sortedUniq.js | 5 + node_modules/lodash/fp/sortedUniqBy.js | 5 + node_modules/lodash/fp/split.js | 5 + node_modules/lodash/fp/spread.js | 5 + node_modules/lodash/fp/spreadFrom.js | 5 + node_modules/lodash/fp/startCase.js | 5 + node_modules/lodash/fp/startsWith.js | 5 + node_modules/lodash/fp/string.js | 2 + node_modules/lodash/fp/stubArray.js | 5 + node_modules/lodash/fp/stubFalse.js | 5 + node_modules/lodash/fp/stubObject.js | 5 + node_modules/lodash/fp/stubString.js | 5 + node_modules/lodash/fp/stubTrue.js | 5 + node_modules/lodash/fp/subtract.js | 5 + node_modules/lodash/fp/sum.js | 5 + node_modules/lodash/fp/sumBy.js | 5 + node_modules/lodash/fp/symmetricDifference.js | 1 + .../lodash/fp/symmetricDifferenceBy.js | 1 + .../lodash/fp/symmetricDifferenceWith.js | 1 + node_modules/lodash/fp/tail.js | 5 + node_modules/lodash/fp/take.js | 5 + node_modules/lodash/fp/takeLast.js | 1 + node_modules/lodash/fp/takeLastWhile.js | 1 + node_modules/lodash/fp/takeRight.js | 5 + node_modules/lodash/fp/takeRightWhile.js | 5 + node_modules/lodash/fp/takeWhile.js | 5 + node_modules/lodash/fp/tap.js | 5 + node_modules/lodash/fp/template.js | 5 + node_modules/lodash/fp/templateSettings.js | 5 + node_modules/lodash/fp/throttle.js | 5 + node_modules/lodash/fp/thru.js | 5 + node_modules/lodash/fp/times.js | 5 + node_modules/lodash/fp/toArray.js | 5 + node_modules/lodash/fp/toFinite.js | 5 + node_modules/lodash/fp/toInteger.js | 5 + node_modules/lodash/fp/toIterator.js | 5 + node_modules/lodash/fp/toJSON.js | 5 + node_modules/lodash/fp/toLength.js | 5 + node_modules/lodash/fp/toLower.js | 5 + node_modules/lodash/fp/toNumber.js | 5 + node_modules/lodash/fp/toPairs.js | 5 + node_modules/lodash/fp/toPairsIn.js | 5 + node_modules/lodash/fp/toPath.js | 5 + node_modules/lodash/fp/toPlainObject.js | 5 + node_modules/lodash/fp/toSafeInteger.js | 5 + node_modules/lodash/fp/toString.js | 5 + node_modules/lodash/fp/toUpper.js | 5 + node_modules/lodash/fp/transform.js | 5 + node_modules/lodash/fp/trim.js | 5 + node_modules/lodash/fp/trimChars.js | 5 + node_modules/lodash/fp/trimCharsEnd.js | 5 + node_modules/lodash/fp/trimCharsStart.js | 5 + node_modules/lodash/fp/trimEnd.js | 5 + node_modules/lodash/fp/trimStart.js | 5 + node_modules/lodash/fp/truncate.js | 5 + node_modules/lodash/fp/unapply.js | 1 + node_modules/lodash/fp/unary.js | 5 + node_modules/lodash/fp/unescape.js | 5 + node_modules/lodash/fp/union.js | 5 + node_modules/lodash/fp/unionBy.js | 5 + node_modules/lodash/fp/unionWith.js | 5 + node_modules/lodash/fp/uniq.js | 5 + node_modules/lodash/fp/uniqBy.js | 5 + node_modules/lodash/fp/uniqWith.js | 5 + node_modules/lodash/fp/uniqueId.js | 5 + node_modules/lodash/fp/unnest.js | 1 + node_modules/lodash/fp/unset.js | 5 + node_modules/lodash/fp/unzip.js | 5 + node_modules/lodash/fp/unzipWith.js | 5 + node_modules/lodash/fp/update.js | 5 + node_modules/lodash/fp/updateWith.js | 5 + node_modules/lodash/fp/upperCase.js | 5 + node_modules/lodash/fp/upperFirst.js | 5 + node_modules/lodash/fp/useWith.js | 1 + node_modules/lodash/fp/util.js | 2 + node_modules/lodash/fp/value.js | 5 + node_modules/lodash/fp/valueOf.js | 5 + node_modules/lodash/fp/values.js | 5 + node_modules/lodash/fp/valuesIn.js | 5 + node_modules/lodash/fp/where.js | 1 + node_modules/lodash/fp/whereEq.js | 1 + node_modules/lodash/fp/without.js | 5 + node_modules/lodash/fp/words.js | 5 + node_modules/lodash/fp/wrap.js | 5 + node_modules/lodash/fp/wrapperAt.js | 5 + node_modules/lodash/fp/wrapperChain.js | 5 + node_modules/lodash/fp/wrapperLodash.js | 5 + node_modules/lodash/fp/wrapperReverse.js | 5 + node_modules/lodash/fp/wrapperValue.js | 5 + node_modules/lodash/fp/xor.js | 5 + node_modules/lodash/fp/xorBy.js | 5 + node_modules/lodash/fp/xorWith.js | 5 + node_modules/lodash/fp/zip.js | 5 + node_modules/lodash/fp/zipAll.js | 5 + node_modules/lodash/fp/zipObj.js | 1 + node_modules/lodash/fp/zipObject.js | 5 + node_modules/lodash/fp/zipObjectDeep.js | 5 + node_modules/lodash/fp/zipWith.js | 5 + node_modules/lodash/fromPairs.js | 30 + node_modules/lodash/function.js | 25 + node_modules/lodash/functions.js | 31 + node_modules/lodash/functionsIn.js | 31 + node_modules/lodash/get.js | 33 + node_modules/lodash/groupBy.js | 41 + node_modules/lodash/gt.js | 29 + node_modules/lodash/gte.js | 30 + node_modules/lodash/has.js | 35 + node_modules/lodash/hasIn.js | 34 + node_modules/lodash/head.js | 23 + node_modules/lodash/identity.js | 21 + node_modules/lodash/inRange.js | 55 + node_modules/lodash/includes.js | 53 + node_modules/lodash/index.js | 1 + node_modules/lodash/indexOf.js | 42 + node_modules/lodash/initial.js | 22 + node_modules/lodash/intersection.js | 30 + node_modules/lodash/intersectionBy.js | 45 + node_modules/lodash/intersectionWith.js | 41 + node_modules/lodash/invert.js | 42 + node_modules/lodash/invertBy.js | 56 + node_modules/lodash/invoke.js | 24 + node_modules/lodash/invokeMap.js | 41 + node_modules/lodash/isArguments.js | 36 + node_modules/lodash/isArray.js | 26 + node_modules/lodash/isArrayBuffer.js | 27 + node_modules/lodash/isArrayLike.js | 33 + node_modules/lodash/isArrayLikeObject.js | 33 + node_modules/lodash/isBoolean.js | 29 + node_modules/lodash/isBuffer.js | 38 + node_modules/lodash/isDate.js | 27 + node_modules/lodash/isElement.js | 25 + node_modules/lodash/isEmpty.js | 77 + node_modules/lodash/isEqual.js | 35 + node_modules/lodash/isEqualWith.js | 41 + node_modules/lodash/isError.js | 36 + node_modules/lodash/isFinite.js | 36 + node_modules/lodash/isFunction.js | 37 + node_modules/lodash/isInteger.js | 33 + node_modules/lodash/isLength.js | 35 + node_modules/lodash/isMap.js | 27 + node_modules/lodash/isMatch.js | 36 + node_modules/lodash/isMatchWith.js | 41 + node_modules/lodash/isNaN.js | 38 + node_modules/lodash/isNative.js | 40 + node_modules/lodash/isNil.js | 25 + node_modules/lodash/isNull.js | 22 + node_modules/lodash/isNumber.js | 38 + node_modules/lodash/isObject.js | 31 + node_modules/lodash/isObjectLike.js | 29 + node_modules/lodash/isPlainObject.js | 62 + node_modules/lodash/isRegExp.js | 27 + node_modules/lodash/isSafeInteger.js | 37 + node_modules/lodash/isSet.js | 27 + node_modules/lodash/isString.js | 30 + node_modules/lodash/isSymbol.js | 29 + node_modules/lodash/isTypedArray.js | 27 + node_modules/lodash/isUndefined.js | 22 + node_modules/lodash/isWeakMap.js | 28 + node_modules/lodash/isWeakSet.js | 28 + node_modules/lodash/iteratee.js | 53 + node_modules/lodash/join.js | 26 + node_modules/lodash/kebabCase.js | 28 + node_modules/lodash/keyBy.js | 36 + node_modules/lodash/keys.js | 37 + node_modules/lodash/keysIn.js | 32 + node_modules/lodash/lang.js | 58 + node_modules/lodash/last.js | 20 + node_modules/lodash/lastIndexOf.js | 46 + node_modules/lodash/lodash.js | 17259 ++ node_modules/lodash/lodash.min.js | 136 + node_modules/lodash/lowerCase.js | 27 + node_modules/lodash/lowerFirst.js | 22 + node_modules/lodash/lt.js | 29 + node_modules/lodash/lte.js | 30 + node_modules/lodash/map.js | 53 + node_modules/lodash/mapKeys.js | 36 + node_modules/lodash/mapValues.js | 43 + node_modules/lodash/matches.js | 46 + node_modules/lodash/matchesProperty.js | 44 + node_modules/lodash/math.js | 17 + node_modules/lodash/max.js | 29 + node_modules/lodash/maxBy.js | 34 + node_modules/lodash/mean.js | 22 + node_modules/lodash/meanBy.js | 31 + node_modules/lodash/memoize.js | 73 + node_modules/lodash/merge.js | 39 + node_modules/lodash/mergeWith.js | 39 + node_modules/lodash/method.js | 34 + node_modules/lodash/methodOf.js | 33 + node_modules/lodash/min.js | 29 + node_modules/lodash/minBy.js | 34 + node_modules/lodash/mixin.js | 74 + node_modules/lodash/multiply.js | 22 + node_modules/lodash/negate.js | 40 + node_modules/lodash/next.js | 35 + node_modules/lodash/noop.js | 17 + node_modules/lodash/now.js | 23 + node_modules/lodash/nth.js | 29 + node_modules/lodash/nthArg.js | 32 + node_modules/lodash/number.js | 5 + node_modules/lodash/object.js | 49 + node_modules/lodash/omit.js | 57 + node_modules/lodash/omitBy.js | 29 + node_modules/lodash/once.js | 25 + node_modules/lodash/orderBy.js | 47 + node_modules/lodash/over.js | 24 + node_modules/lodash/overArgs.js | 61 + node_modules/lodash/overEvery.js | 34 + node_modules/lodash/overSome.js | 37 + node_modules/lodash/package.json | 19 + node_modules/lodash/pad.js | 49 + node_modules/lodash/padEnd.js | 39 + node_modules/lodash/padStart.js | 39 + node_modules/lodash/parseInt.js | 43 + node_modules/lodash/partial.js | 50 + node_modules/lodash/partialRight.js | 49 + node_modules/lodash/partition.js | 43 + node_modules/lodash/pick.js | 25 + node_modules/lodash/pickBy.js | 37 + node_modules/lodash/plant.js | 48 + node_modules/lodash/property.js | 32 + node_modules/lodash/propertyOf.js | 30 + node_modules/lodash/pull.js | 29 + node_modules/lodash/pullAll.js | 29 + node_modules/lodash/pullAllBy.js | 33 + node_modules/lodash/pullAllWith.js | 32 + node_modules/lodash/pullAt.js | 43 + node_modules/lodash/random.js | 91 + node_modules/lodash/range.js | 46 + node_modules/lodash/rangeRight.js | 41 + node_modules/lodash/rearg.js | 33 + node_modules/lodash/reduce.js | 51 + node_modules/lodash/reduceRight.js | 36 + node_modules/lodash/reject.js | 46 + node_modules/lodash/remove.js | 53 + node_modules/lodash/repeat.js | 37 + node_modules/lodash/replace.js | 29 + node_modules/lodash/rest.js | 40 + node_modules/lodash/result.js | 56 + node_modules/lodash/reverse.js | 34 + node_modules/lodash/round.js | 26 + node_modules/lodash/sample.js | 24 + node_modules/lodash/sampleSize.js | 37 + node_modules/lodash/seq.js | 16 + node_modules/lodash/set.js | 35 + node_modules/lodash/setWith.js | 32 + node_modules/lodash/shuffle.js | 25 + node_modules/lodash/size.js | 46 + node_modules/lodash/slice.js | 37 + node_modules/lodash/snakeCase.js | 28 + node_modules/lodash/some.js | 51 + node_modules/lodash/sortBy.js | 48 + node_modules/lodash/sortedIndex.js | 24 + node_modules/lodash/sortedIndexBy.js | 33 + node_modules/lodash/sortedIndexOf.js | 31 + node_modules/lodash/sortedLastIndex.js | 25 + node_modules/lodash/sortedLastIndexBy.js | 33 + node_modules/lodash/sortedLastIndexOf.js | 31 + node_modules/lodash/sortedUniq.js | 24 + node_modules/lodash/sortedUniqBy.js | 26 + node_modules/lodash/split.js | 52 + node_modules/lodash/spread.js | 63 + node_modules/lodash/startCase.js | 29 + node_modules/lodash/startsWith.js | 39 + node_modules/lodash/string.js | 33 + node_modules/lodash/stubArray.js | 23 + node_modules/lodash/stubFalse.js | 18 + node_modules/lodash/stubObject.js | 23 + node_modules/lodash/stubString.js | 18 + node_modules/lodash/stubTrue.js | 18 + node_modules/lodash/subtract.js | 22 + node_modules/lodash/sum.js | 24 + node_modules/lodash/sumBy.js | 33 + node_modules/lodash/tail.js | 22 + node_modules/lodash/take.js | 37 + node_modules/lodash/takeRight.js | 39 + node_modules/lodash/takeRightWhile.js | 45 + node_modules/lodash/takeWhile.js | 45 + node_modules/lodash/tap.js | 29 + node_modules/lodash/template.js | 284 + node_modules/lodash/templateSettings.js | 71 + node_modules/lodash/throttle.js | 69 + node_modules/lodash/thru.js | 28 + node_modules/lodash/times.js | 51 + node_modules/lodash/toArray.js | 58 + node_modules/lodash/toFinite.js | 42 + node_modules/lodash/toInteger.js | 36 + node_modules/lodash/toIterator.js | 23 + node_modules/lodash/toJSON.js | 1 + node_modules/lodash/toLength.js | 38 + node_modules/lodash/toLower.js | 28 + node_modules/lodash/toNumber.js | 64 + node_modules/lodash/toPairs.js | 30 + node_modules/lodash/toPairsIn.js | 30 + node_modules/lodash/toPath.js | 33 + node_modules/lodash/toPlainObject.js | 32 + node_modules/lodash/toSafeInteger.js | 37 + node_modules/lodash/toString.js | 28 + node_modules/lodash/toUpper.js | 28 + node_modules/lodash/transform.js | 65 + node_modules/lodash/trim.js | 47 + node_modules/lodash/trimEnd.js | 41 + node_modules/lodash/trimStart.js | 43 + node_modules/lodash/truncate.js | 111 + node_modules/lodash/unary.js | 22 + node_modules/lodash/unescape.js | 34 + node_modules/lodash/union.js | 26 + node_modules/lodash/unionBy.js | 39 + node_modules/lodash/unionWith.js | 34 + node_modules/lodash/uniq.js | 25 + node_modules/lodash/uniqBy.js | 31 + node_modules/lodash/uniqWith.js | 28 + node_modules/lodash/uniqueId.js | 28 + node_modules/lodash/unset.js | 34 + node_modules/lodash/unzip.js | 45 + node_modules/lodash/unzipWith.js | 39 + node_modules/lodash/update.js | 35 + node_modules/lodash/updateWith.js | 33 + node_modules/lodash/upperCase.js | 27 + node_modules/lodash/upperFirst.js | 22 + node_modules/lodash/util.js | 34 + node_modules/lodash/value.js | 1 + node_modules/lodash/valueOf.js | 1 + node_modules/lodash/values.js | 34 + node_modules/lodash/valuesIn.js | 32 + node_modules/lodash/without.js | 31 + node_modules/lodash/words.js | 35 + node_modules/lodash/wrap.js | 30 + node_modules/lodash/wrapperAt.js | 48 + node_modules/lodash/wrapperChain.js | 34 + node_modules/lodash/wrapperLodash.js | 147 + node_modules/lodash/wrapperReverse.js | 44 + node_modules/lodash/wrapperValue.js | 21 + node_modules/lodash/xor.js | 28 + node_modules/lodash/xorBy.js | 39 + node_modules/lodash/xorWith.js | 34 + node_modules/lodash/zip.js | 22 + node_modules/lodash/zipObject.js | 24 + node_modules/lodash/zipObjectDeep.js | 23 + node_modules/lodash/zipWith.js | 32 + node_modules/magic-bytes.js/LICENSE | 21 + node_modules/magic-bytes.js/README.md | 110 + node_modules/magic-bytes.js/dist/index.d.ts | 8 + .../magic-bytes.js/dist/index.d.ts.map | 1 + node_modules/magic-bytes.js/dist/index.js | 61 + .../magic-bytes.js/dist/index.spec.d.ts | 2 + .../magic-bytes.js/dist/index.spec.d.ts.map | 1 + .../magic-bytes.js/dist/index.spec.js | 321 + .../dist/model/pattern-tree.d.ts | 8 + .../dist/model/pattern-tree.d.ts.map | 1 + .../magic-bytes.js/dist/model/pattern-tree.js | 1176 + .../magic-bytes.js/dist/model/toHex.d.ts | 3 + .../magic-bytes.js/dist/model/toHex.d.ts.map | 1 + .../magic-bytes.js/dist/model/toHex.js | 8 + .../magic-bytes.js/dist/model/tree.d.ts | 30 + .../magic-bytes.js/dist/model/tree.d.ts.map | 1 + .../magic-bytes.js/dist/model/tree.js | 61 + .../magic-bytes.js/dist/model/tree.spec.d.ts | 2 + .../dist/model/tree.spec.d.ts.map | 1 + .../magic-bytes.js/dist/model/tree.spec.js | 34 + node_modules/magic-bytes.js/package.json | 77 + node_modules/math-intrinsics/.eslintrc | 16 + .../math-intrinsics/.github/FUNDING.yml | 12 + node_modules/math-intrinsics/CHANGELOG.md | 24 + node_modules/math-intrinsics/LICENSE | 21 + node_modules/math-intrinsics/README.md | 50 + node_modules/math-intrinsics/abs.d.ts | 1 + node_modules/math-intrinsics/abs.js | 4 + .../constants/maxArrayLength.d.ts | 3 + .../constants/maxArrayLength.js | 4 + .../constants/maxSafeInteger.d.ts | 3 + .../constants/maxSafeInteger.js | 5 + .../math-intrinsics/constants/maxValue.d.ts | 3 + .../math-intrinsics/constants/maxValue.js | 5 + node_modules/math-intrinsics/floor.d.ts | 1 + node_modules/math-intrinsics/floor.js | 4 + node_modules/math-intrinsics/isFinite.d.ts | 3 + node_modules/math-intrinsics/isFinite.js | 12 + node_modules/math-intrinsics/isInteger.d.ts | 3 + node_modules/math-intrinsics/isInteger.js | 16 + node_modules/math-intrinsics/isNaN.d.ts | 1 + node_modules/math-intrinsics/isNaN.js | 6 + .../math-intrinsics/isNegativeZero.d.ts | 3 + .../math-intrinsics/isNegativeZero.js | 6 + node_modules/math-intrinsics/max.d.ts | 1 + node_modules/math-intrinsics/max.js | 4 + node_modules/math-intrinsics/min.d.ts | 1 + node_modules/math-intrinsics/min.js | 4 + node_modules/math-intrinsics/mod.d.ts | 3 + node_modules/math-intrinsics/mod.js | 9 + node_modules/math-intrinsics/package.json | 86 + node_modules/math-intrinsics/pow.d.ts | 1 + node_modules/math-intrinsics/pow.js | 4 + node_modules/math-intrinsics/round.d.ts | 1 + node_modules/math-intrinsics/round.js | 4 + node_modules/math-intrinsics/sign.d.ts | 3 + node_modules/math-intrinsics/sign.js | 11 + node_modules/math-intrinsics/test/index.js | 192 + node_modules/math-intrinsics/tsconfig.json | 3 + node_modules/media-typer/HISTORY.md | 22 + node_modules/media-typer/LICENSE | 22 + node_modules/media-typer/README.md | 81 + node_modules/media-typer/index.js | 270 + node_modules/media-typer/package.json | 26 + node_modules/merge-descriptors/HISTORY.md | 21 + node_modules/merge-descriptors/LICENSE | 23 + node_modules/merge-descriptors/README.md | 49 + node_modules/merge-descriptors/index.js | 60 + node_modules/merge-descriptors/package.json | 39 + node_modules/methods/HISTORY.md | 29 + node_modules/methods/LICENSE | 24 + node_modules/methods/README.md | 51 + node_modules/methods/index.js | 69 + node_modules/methods/package.json | 36 + node_modules/mime-db/HISTORY.md | 507 + node_modules/mime-db/LICENSE | 23 + node_modules/mime-db/README.md | 100 + node_modules/mime-db/db.json | 8519 + node_modules/mime-db/index.js | 12 + node_modules/mime-db/package.json | 60 + node_modules/mime-types/HISTORY.md | 397 + node_modules/mime-types/LICENSE | 23 + node_modules/mime-types/README.md | 113 + node_modules/mime-types/index.js | 188 + node_modules/mime-types/package.json | 44 + node_modules/mime/.npmignore | 0 node_modules/mime/CHANGELOG.md | 164 + node_modules/mime/LICENSE | 21 + node_modules/mime/README.md | 90 + node_modules/mime/cli.js | 8 + node_modules/mime/mime.js | 108 + node_modules/mime/package.json | 44 + node_modules/mime/src/build.js | 53 + node_modules/mime/src/test.js | 60 + node_modules/mime/types.json | 1 + node_modules/ms/index.js | 152 + node_modules/ms/license.md | 21 + node_modules/ms/package.json | 37 + node_modules/ms/readme.md | 51 + node_modules/negotiator/HISTORY.md | 108 + node_modules/negotiator/LICENSE | 24 + node_modules/negotiator/README.md | 203 + node_modules/negotiator/index.js | 82 + node_modules/negotiator/lib/charset.js | 169 + node_modules/negotiator/lib/encoding.js | 184 + node_modules/negotiator/lib/language.js | 179 + node_modules/negotiator/lib/mediaType.js | 294 + node_modules/negotiator/package.json | 42 + node_modules/object-inspect/.eslintrc | 53 + .../object-inspect/.github/FUNDING.yml | 12 + node_modules/object-inspect/.nycrc | 13 + node_modules/object-inspect/CHANGELOG.md | 424 + node_modules/object-inspect/LICENSE | 21 + node_modules/object-inspect/example/all.js | 23 + .../object-inspect/example/circular.js | 6 + node_modules/object-inspect/example/fn.js | 5 + .../object-inspect/example/inspect.js | 10 + node_modules/object-inspect/index.js | 544 + .../object-inspect/package-support.json | 20 + node_modules/object-inspect/package.json | 105 + node_modules/object-inspect/readme.markdown | 84 + node_modules/object-inspect/test-core-js.js | 26 + node_modules/object-inspect/test/bigint.js | 58 + .../object-inspect/test/browser/dom.js | 15 + node_modules/object-inspect/test/circular.js | 16 + node_modules/object-inspect/test/deep.js | 12 + node_modules/object-inspect/test/element.js | 53 + node_modules/object-inspect/test/err.js | 48 + node_modules/object-inspect/test/fakes.js | 29 + node_modules/object-inspect/test/fn.js | 76 + node_modules/object-inspect/test/global.js | 17 + node_modules/object-inspect/test/has.js | 15 + node_modules/object-inspect/test/holes.js | 15 + .../object-inspect/test/indent-option.js | 271 + node_modules/object-inspect/test/inspect.js | 139 + node_modules/object-inspect/test/lowbyte.js | 12 + node_modules/object-inspect/test/number.js | 58 + .../object-inspect/test/quoteStyle.js | 26 + .../object-inspect/test/toStringTag.js | 40 + node_modules/object-inspect/test/undef.js | 12 + node_modules/object-inspect/test/values.js | 261 + node_modules/object-inspect/util.inspect.js | 1 + node_modules/on-finished/HISTORY.md | 98 + node_modules/on-finished/LICENSE | 23 + node_modules/on-finished/README.md | 162 + node_modules/on-finished/index.js | 234 + node_modules/on-finished/package.json | 39 + node_modules/parseurl/HISTORY.md | 58 + node_modules/parseurl/LICENSE | 24 + node_modules/parseurl/README.md | 133 + node_modules/parseurl/index.js | 158 + node_modules/parseurl/package.json | 40 + node_modules/path-to-regexp/LICENSE | 21 + node_modules/path-to-regexp/Readme.md | 35 + node_modules/path-to-regexp/index.js | 158 + node_modules/path-to-regexp/package.json | 30 + node_modules/proxy-addr/HISTORY.md | 161 + node_modules/proxy-addr/LICENSE | 22 + node_modules/proxy-addr/README.md | 139 + node_modules/proxy-addr/index.js | 327 + node_modules/proxy-addr/package.json | 47 + node_modules/qs/.editorconfig | 46 + node_modules/qs/.github/FUNDING.yml | 12 + node_modules/qs/.github/SECURITY.md | 11 + node_modules/qs/.github/THREAT_MODEL.md | 78 + node_modules/qs/.nycrc | 13 + node_modules/qs/CHANGELOG.md | 644 + node_modules/qs/LICENSE.md | 29 + node_modules/qs/README.md | 740 + node_modules/qs/dist/qs.js | 141 + node_modules/qs/eslint.config.mjs | 56 + node_modules/qs/lib/formats.js | 23 + node_modules/qs/lib/index.js | 11 + node_modules/qs/lib/parse.js | 371 + node_modules/qs/lib/stringify.js | 356 + node_modules/qs/lib/utils.js | 340 + node_modules/qs/package.json | 94 + node_modules/qs/test/empty-keys-cases.js | 267 + node_modules/qs/test/parse.js | 1512 + node_modules/qs/test/stringify.js | 1310 + node_modules/qs/test/utils.js | 397 + node_modules/range-parser/HISTORY.md | 56 + node_modules/range-parser/LICENSE | 23 + node_modules/range-parser/README.md | 84 + node_modules/range-parser/index.js | 162 + node_modules/range-parser/package.json | 44 + node_modules/raw-body/LICENSE | 22 + node_modules/raw-body/README.md | 223 + node_modules/raw-body/index.d.ts | 87 + node_modules/raw-body/index.js | 336 + node_modules/raw-body/package.json | 47 + node_modules/rss/.editorconfig | 16 + node_modules/rss/.jshintrc | 13 + node_modules/rss/.npmignore | 4 + node_modules/rss/.travis.yml | 13 + node_modules/rss/Gruntfile.js | 51 + node_modules/rss/LICENSE | 22 + node_modules/rss/lib/index.js | 189 + node_modules/rss/node-rss.iml | 8 + .../rss/node_modules/mime-db/HISTORY.md | 375 + node_modules/rss/node_modules/mime-db/LICENSE | 22 + .../rss/node_modules/mime-db/README.md | 82 + node_modules/rss/node_modules/mime-db/db.json | 6712 + .../rss/node_modules/mime-db/index.js | 11 + .../rss/node_modules/mime-db/package.json | 55 + .../rss/node_modules/mime-types/HISTORY.md | 210 + .../rss/node_modules/mime-types/LICENSE | 23 + .../rss/node_modules/mime-types/README.md | 103 + .../rss/node_modules/mime-types/index.js | 188 + .../rss/node_modules/mime-types/package.json | 41 + node_modules/rss/package.json | 85 + node_modules/rss/readme.md | 244 + node_modules/safe-buffer/LICENSE | 21 + node_modules/safe-buffer/README.md | 584 + node_modules/safe-buffer/index.d.ts | 187 + node_modules/safe-buffer/index.js | 65 + node_modules/safe-buffer/package.json | 51 + node_modules/safer-buffer/LICENSE | 21 + node_modules/safer-buffer/Porting-Buffer.md | 268 + node_modules/safer-buffer/Readme.md | 156 + node_modules/safer-buffer/dangerous.js | 58 + node_modules/safer-buffer/package.json | 34 + node_modules/safer-buffer/safer.js | 77 + node_modules/safer-buffer/tests.js | 406 + node_modules/send/HISTORY.md | 538 + node_modules/send/LICENSE | 23 + node_modules/send/README.md | 327 + node_modules/send/SECURITY.md | 24 + node_modules/send/index.js | 1142 + node_modules/send/node_modules/ms/index.js | 162 + node_modules/send/node_modules/ms/license.md | 21 + .../send/node_modules/ms/package.json | 38 + node_modules/send/node_modules/ms/readme.md | 59 + node_modules/send/package.json | 62 + node_modules/serve-static/HISTORY.md | 493 + node_modules/serve-static/LICENSE | 25 + node_modules/serve-static/README.md | 257 + node_modules/serve-static/index.js | 209 + node_modules/serve-static/package.json | 42 + node_modules/setprototypeof/LICENSE | 13 + node_modules/setprototypeof/README.md | 31 + node_modules/setprototypeof/index.d.ts | 2 + node_modules/setprototypeof/index.js | 17 + node_modules/setprototypeof/package.json | 38 + node_modules/setprototypeof/test/index.js | 24 + node_modules/side-channel-list/.editorconfig | 9 + node_modules/side-channel-list/.eslintrc | 11 + .../side-channel-list/.github/FUNDING.yml | 12 + node_modules/side-channel-list/.nycrc | 13 + node_modules/side-channel-list/CHANGELOG.md | 15 + node_modules/side-channel-list/LICENSE | 21 + node_modules/side-channel-list/README.md | 62 + node_modules/side-channel-list/index.d.ts | 13 + node_modules/side-channel-list/index.js | 113 + node_modules/side-channel-list/list.d.ts | 14 + node_modules/side-channel-list/package.json | 77 + node_modules/side-channel-list/test/index.js | 104 + node_modules/side-channel-list/tsconfig.json | 9 + node_modules/side-channel-map/.editorconfig | 9 + node_modules/side-channel-map/.eslintrc | 11 + .../side-channel-map/.github/FUNDING.yml | 12 + node_modules/side-channel-map/.nycrc | 13 + node_modules/side-channel-map/CHANGELOG.md | 22 + node_modules/side-channel-map/LICENSE | 21 + node_modules/side-channel-map/README.md | 62 + node_modules/side-channel-map/index.d.ts | 15 + node_modules/side-channel-map/index.js | 68 + node_modules/side-channel-map/package.json | 80 + node_modules/side-channel-map/test/index.js | 114 + node_modules/side-channel-map/tsconfig.json | 9 + .../side-channel-weakmap/.editorconfig | 9 + node_modules/side-channel-weakmap/.eslintrc | 12 + .../side-channel-weakmap/.github/FUNDING.yml | 12 + node_modules/side-channel-weakmap/.nycrc | 13 + .../side-channel-weakmap/CHANGELOG.md | 28 + node_modules/side-channel-weakmap/LICENSE | 21 + node_modules/side-channel-weakmap/README.md | 62 + node_modules/side-channel-weakmap/index.d.ts | 15 + node_modules/side-channel-weakmap/index.js | 84 + .../side-channel-weakmap/package.json | 87 + .../side-channel-weakmap/test/index.js | 114 + .../side-channel-weakmap/tsconfig.json | 9 + node_modules/side-channel/.editorconfig | 9 + node_modules/side-channel/.eslintrc | 12 + node_modules/side-channel/.github/FUNDING.yml | 12 + node_modules/side-channel/.nycrc | 13 + node_modules/side-channel/CHANGELOG.md | 110 + node_modules/side-channel/LICENSE | 21 + node_modules/side-channel/README.md | 61 + node_modules/side-channel/index.d.ts | 14 + node_modules/side-channel/index.js | 43 + node_modules/side-channel/package.json | 85 + node_modules/side-channel/test/index.js | 104 + node_modules/side-channel/tsconfig.json | 9 + node_modules/sql.js/.devcontainer/Dockerfile | 76 + .../sql.js/.devcontainer/devcontainer.json | 20 + node_modules/sql.js/.eslintrc.js | 68 + node_modules/sql.js/.jsdoc.config.json | 38 + node_modules/sql.js/.nojekyll | 0 node_modules/sql.js/AUTHORS | 8 + node_modules/sql.js/CONTRIBUTING.md | 66 + node_modules/sql.js/LICENSE | 44 + node_modules/sql.js/README.md | 357 + node_modules/sql.js/dist/sql-asm-debug.js | 140890 ++++++++++++++ .../sql.js/dist/sql-asm-memory-growth.js | 204 + node_modules/sql.js/dist/sql-asm.js | 202 + .../sql.js/dist/sql-wasm-browser-debug.js | 7157 + .../sql.js/dist/sql-wasm-browser-debug.wasm | Bin 0 -> 739460 bytes node_modules/sql.js/dist/sql-wasm-browser.js | 183 + .../sql.js/dist/sql-wasm-browser.wasm | Bin 0 -> 659730 bytes node_modules/sql.js/dist/sql-wasm-debug.js | 7265 + node_modules/sql.js/dist/sql-wasm-debug.wasm | Bin 0 -> 739460 bytes node_modules/sql.js/dist/sql-wasm.js | 185 + node_modules/sql.js/dist/sql-wasm.wasm | Bin 0 -> 659730 bytes .../sql.js/dist/worker.sql-asm-debug.js | 141011 +++++++++++++++ node_modules/sql.js/dist/worker.sql-asm.js | 323 + .../sql.js/dist/worker.sql-wasm-debug.js | 7386 + node_modules/sql.js/dist/worker.sql-wasm.js | 306 + node_modules/sql.js/documentation_index.md | 26 + node_modules/sql.js/eslint.config.cjs | 57 + node_modules/sql.js/logo.svg | 13 + node_modules/sql.js/package.json | 58 + node_modules/statuses/HISTORY.md | 87 + node_modules/statuses/LICENSE | 23 + node_modules/statuses/README.md | 139 + node_modules/statuses/codes.json | 65 + node_modules/statuses/index.js | 146 + node_modules/statuses/package.json | 49 + node_modules/toidentifier/HISTORY.md | 9 + node_modules/toidentifier/LICENSE | 21 + node_modules/toidentifier/README.md | 61 + node_modules/toidentifier/index.js | 32 + node_modules/toidentifier/package.json | 38 + node_modules/ts-mixer/CHANGELOG.md | 120 + node_modules/ts-mixer/LICENSE | 21 + node_modules/ts-mixer/README.md | 270 + node_modules/ts-mixer/dist/cjs/decorator.js | 109 + node_modules/ts-mixer/dist/cjs/index.js | 12 + .../ts-mixer/dist/cjs/mixin-tracking.js | 42 + node_modules/ts-mixer/dist/cjs/mixins.js | 82 + node_modules/ts-mixer/dist/cjs/proxy.js | 82 + node_modules/ts-mixer/dist/cjs/settings.js | 9 + node_modules/ts-mixer/dist/cjs/types.js | 2 + node_modules/ts-mixer/dist/cjs/util.js | 85 + node_modules/ts-mixer/dist/esm/decorator.d.ts | 18 + node_modules/ts-mixer/dist/esm/index.d.ts | 4 + node_modules/ts-mixer/dist/esm/index.js | 366 + node_modules/ts-mixer/dist/esm/index.min.js | 1 + .../ts-mixer/dist/esm/mixin-tracking.d.ts | 4 + node_modules/ts-mixer/dist/esm/mixins.d.ts | 16 + node_modules/ts-mixer/dist/esm/proxy.d.ts | 16 + node_modules/ts-mixer/dist/esm/settings.d.ts | 7 + node_modules/ts-mixer/dist/esm/types.d.ts | 13 + node_modules/ts-mixer/dist/esm/util.d.ts | 27 + .../ts-mixer/dist/types/decorator.d.ts | 18 + node_modules/ts-mixer/dist/types/index.d.ts | 4 + .../ts-mixer/dist/types/mixin-tracking.d.ts | 4 + node_modules/ts-mixer/dist/types/mixins.d.ts | 16 + node_modules/ts-mixer/dist/types/proxy.d.ts | 16 + .../ts-mixer/dist/types/settings.d.ts | 7 + node_modules/ts-mixer/dist/types/types.d.ts | 13 + node_modules/ts-mixer/dist/types/util.d.ts | 27 + node_modules/ts-mixer/package.json | 63 + node_modules/tslib/CopyrightNotice.txt | 15 + node_modules/tslib/LICENSE.txt | 12 + node_modules/tslib/README.md | 164 + node_modules/tslib/SECURITY.md | 41 + node_modules/tslib/modules/index.d.ts | 38 + node_modules/tslib/modules/index.js | 70 + node_modules/tslib/modules/package.json | 3 + node_modules/tslib/package.json | 47 + node_modules/tslib/tslib.d.ts | 460 + node_modules/tslib/tslib.es6.html | 1 + node_modules/tslib/tslib.es6.js | 402 + node_modules/tslib/tslib.es6.mjs | 401 + node_modules/tslib/tslib.html | 1 + node_modules/tslib/tslib.js | 484 + node_modules/type-is/HISTORY.md | 259 + node_modules/type-is/LICENSE | 23 + node_modules/type-is/README.md | 170 + node_modules/type-is/index.js | 266 + node_modules/type-is/package.json | 45 + node_modules/undici-types/LICENSE | 21 + node_modules/undici-types/README.md | 6 + node_modules/undici-types/agent.d.ts | 32 + node_modules/undici-types/api.d.ts | 43 + node_modules/undici-types/balanced-pool.d.ts | 30 + .../undici-types/cache-interceptor.d.ts | 173 + node_modules/undici-types/cache.d.ts | 36 + node_modules/undici-types/client-stats.d.ts | 15 + node_modules/undici-types/client.d.ts | 108 + node_modules/undici-types/connector.d.ts | 34 + node_modules/undici-types/content-type.d.ts | 21 + node_modules/undici-types/cookies.d.ts | 30 + .../undici-types/diagnostics-channel.d.ts | 74 + node_modules/undici-types/dispatcher.d.ts | 276 + .../undici-types/env-http-proxy-agent.d.ts | 22 + node_modules/undici-types/errors.d.ts | 161 + node_modules/undici-types/eventsource.d.ts | 66 + node_modules/undici-types/fetch.d.ts | 211 + node_modules/undici-types/formdata.d.ts | 108 + .../undici-types/global-dispatcher.d.ts | 9 + node_modules/undici-types/global-origin.d.ts | 7 + node_modules/undici-types/h2c-client.d.ts | 73 + node_modules/undici-types/handlers.d.ts | 15 + node_modules/undici-types/header.d.ts | 160 + node_modules/undici-types/index.d.ts | 88 + node_modules/undici-types/interceptors.d.ts | 73 + node_modules/undici-types/mock-agent.d.ts | 68 + .../undici-types/mock-call-history.d.ts | 111 + node_modules/undici-types/mock-client.d.ts | 27 + node_modules/undici-types/mock-errors.d.ts | 12 + .../undici-types/mock-interceptor.d.ts | 94 + node_modules/undici-types/mock-pool.d.ts | 27 + node_modules/undici-types/package.json | 55 + node_modules/undici-types/patch.d.ts | 29 + node_modules/undici-types/pool-stats.d.ts | 19 + node_modules/undici-types/pool.d.ts | 41 + node_modules/undici-types/proxy-agent.d.ts | 29 + node_modules/undici-types/readable.d.ts | 68 + node_modules/undici-types/retry-agent.d.ts | 8 + node_modules/undici-types/retry-handler.d.ts | 125 + .../undici-types/round-robin-pool.d.ts | 41 + node_modules/undici-types/snapshot-agent.d.ts | 109 + node_modules/undici-types/util.d.ts | 18 + node_modules/undici-types/utility.d.ts | 7 + node_modules/undici-types/webidl.d.ts | 341 + node_modules/undici-types/websocket.d.ts | 186 + node_modules/undici/LICENSE | 21 + node_modules/undici/README.md | 473 + node_modules/undici/docs/docs/api/Agent.md | 80 + .../undici/docs/docs/api/BalancedPool.md | 99 + .../undici/docs/docs/api/CacheStorage.md | 30 + node_modules/undici/docs/docs/api/Client.md | 274 + .../undici/docs/docs/api/Connector.md | 115 + .../undici/docs/docs/api/ContentType.md | 57 + node_modules/undici/docs/docs/api/Cookies.md | 101 + node_modules/undici/docs/docs/api/Debug.md | 62 + .../docs/docs/api/DiagnosticsChannel.md | 204 + .../docs/docs/api/DispatchInterceptor.md | 60 + .../undici/docs/docs/api/Dispatcher.md | 1347 + .../undici/docs/docs/api/EnvHttpProxyAgent.md | 162 + node_modules/undici/docs/docs/api/Errors.md | 49 + .../undici/docs/docs/api/EventSource.md | 45 + node_modules/undici/docs/docs/api/Fetch.md | 52 + .../undici/docs/docs/api/MockAgent.md | 540 + .../undici/docs/docs/api/MockClient.md | 77 + .../undici/docs/docs/api/MockErrors.md | 12 + node_modules/undici/docs/docs/api/MockPool.md | 547 + node_modules/undici/docs/docs/api/Pool.md | 84 + .../undici/docs/docs/api/PoolStats.md | 35 + .../undici/docs/docs/api/ProxyAgent.md | 131 + .../undici/docs/docs/api/RedirectHandler.md | 96 + .../undici/docs/docs/api/RetryAgent.md | 45 + .../undici/docs/docs/api/RetryHandler.md | 117 + node_modules/undici/docs/docs/api/Util.md | 25 + .../undici/docs/docs/api/WebSocket.md | 51 + .../undici/docs/docs/api/api-lifecycle.md | 91 + .../docs/best-practices/client-certificate.md | 64 + .../docs/best-practices/mocking-request.md | 136 + .../undici/docs/docs/best-practices/proxy.md | 127 + .../docs/docs/best-practices/writing-tests.md | 20 + node_modules/undici/index-fetch.js | 35 + node_modules/undici/index.d.ts | 3 + node_modules/undici/index.js | 169 + node_modules/undici/lib/api/abort-signal.js | 57 + node_modules/undici/lib/api/api-connect.js | 108 + node_modules/undici/lib/api/api-pipeline.js | 251 + node_modules/undici/lib/api/api-request.js | 214 + node_modules/undici/lib/api/api-stream.js | 220 + node_modules/undici/lib/api/api-upgrade.js | 108 + node_modules/undici/lib/api/index.js | 7 + node_modules/undici/lib/api/readable.js | 385 + node_modules/undici/lib/api/util.js | 93 + node_modules/undici/lib/core/connect.js | 240 + node_modules/undici/lib/core/constants.js | 118 + node_modules/undici/lib/core/diagnostics.js | 202 + node_modules/undici/lib/core/errors.js | 425 + node_modules/undici/lib/core/request.js | 405 + node_modules/undici/lib/core/symbols.js | 67 + node_modules/undici/lib/core/tree.js | 152 + node_modules/undici/lib/core/util.js | 719 + node_modules/undici/lib/dispatcher/agent.js | 129 + .../undici/lib/dispatcher/balanced-pool.js | 209 + .../undici/lib/dispatcher/client-h1.js | 1370 + .../undici/lib/dispatcher/client-h2.js | 744 + node_modules/undici/lib/dispatcher/client.js | 622 + .../undici/lib/dispatcher/dispatcher-base.js | 190 + .../undici/lib/dispatcher/dispatcher.js | 65 + .../lib/dispatcher/env-http-proxy-agent.js | 160 + .../undici/lib/dispatcher/fixed-queue.js | 117 + .../undici/lib/dispatcher/pool-base.js | 194 + .../undici/lib/dispatcher/pool-stats.js | 34 + node_modules/undici/lib/dispatcher/pool.js | 107 + .../undici/lib/dispatcher/proxy-agent.js | 274 + .../undici/lib/dispatcher/retry-agent.js | 35 + node_modules/undici/lib/global.js | 32 + .../undici/lib/handler/decorator-handler.js | 44 + .../undici/lib/handler/redirect-handler.js | 232 + .../undici/lib/handler/retry-handler.js | 374 + node_modules/undici/lib/interceptor/dns.js | 375 + node_modules/undici/lib/interceptor/dump.js | 123 + .../lib/interceptor/redirect-interceptor.js | 21 + .../undici/lib/interceptor/redirect.js | 24 + .../undici/lib/interceptor/response-error.js | 86 + node_modules/undici/lib/interceptor/retry.js | 19 + node_modules/undici/lib/llhttp/.gitkeep | 0 node_modules/undici/lib/llhttp/constants.js | 278 + node_modules/undici/lib/llhttp/llhttp-wasm.js | 5 + .../undici/lib/llhttp/llhttp_simd-wasm.js | 5 + node_modules/undici/lib/llhttp/utils.js | 15 + node_modules/undici/lib/mock/mock-agent.js | 160 + node_modules/undici/lib/mock/mock-client.js | 59 + node_modules/undici/lib/mock/mock-errors.js | 28 + .../undici/lib/mock/mock-interceptor.js | 207 + node_modules/undici/lib/mock/mock-pool.js | 59 + node_modules/undici/lib/mock/mock-symbols.js | 23 + node_modules/undici/lib/mock/mock-utils.js | 367 + .../mock/pending-interceptors-formatter.js | 43 + node_modules/undici/lib/mock/pluralizer.js | 29 + node_modules/undici/lib/util/timers.js | 423 + node_modules/undici/lib/web/cache/cache.js | 859 + .../undici/lib/web/cache/cachestorage.js | 152 + node_modules/undici/lib/web/cache/symbols.js | 5 + node_modules/undici/lib/web/cache/util.js | 45 + .../undici/lib/web/cookies/constants.js | 12 + node_modules/undici/lib/web/cookies/index.js | 184 + node_modules/undici/lib/web/cookies/parse.js | 317 + node_modules/undici/lib/web/cookies/util.js | 282 + .../lib/web/eventsource/eventsource-stream.js | 398 + .../undici/lib/web/eventsource/eventsource.js | 480 + .../undici/lib/web/eventsource/util.js | 37 + node_modules/undici/lib/web/fetch/LICENSE | 21 + node_modules/undici/lib/web/fetch/body.js | 529 + .../undici/lib/web/fetch/constants.js | 124 + node_modules/undici/lib/web/fetch/data-url.js | 744 + .../lib/web/fetch/dispatcher-weakref.js | 46 + node_modules/undici/lib/web/fetch/file.js | 126 + .../undici/lib/web/fetch/formdata-parser.js | 474 + node_modules/undici/lib/web/fetch/formdata.js | 252 + node_modules/undici/lib/web/fetch/global.js | 40 + node_modules/undici/lib/web/fetch/headers.js | 687 + node_modules/undici/lib/web/fetch/index.js | 2272 + node_modules/undici/lib/web/fetch/request.js | 1037 + node_modules/undici/lib/web/fetch/response.js | 610 + node_modules/undici/lib/web/fetch/symbols.js | 9 + node_modules/undici/lib/web/fetch/util.js | 1632 + node_modules/undici/lib/web/fetch/webidl.js | 695 + .../undici/lib/web/fileapi/encoding.js | 290 + .../undici/lib/web/fileapi/filereader.js | 344 + .../undici/lib/web/fileapi/progressevent.js | 78 + .../undici/lib/web/fileapi/symbols.js | 10 + node_modules/undici/lib/web/fileapi/util.js | 391 + .../undici/lib/web/websocket/connection.js | 371 + .../undici/lib/web/websocket/constants.js | 66 + .../undici/lib/web/websocket/events.js | 329 + .../undici/lib/web/websocket/frame.js | 96 + .../lib/web/websocket/permessage-deflate.js | 118 + .../undici/lib/web/websocket/receiver.js | 427 + .../undici/lib/web/websocket/sender.js | 104 + .../undici/lib/web/websocket/symbols.js | 12 + node_modules/undici/lib/web/websocket/util.js | 322 + .../undici/lib/web/websocket/websocket.js | 588 + node_modules/undici/package.json | 160 + node_modules/undici/scripts/strip-comments.js | 8 + node_modules/undici/types/README.md | 6 + node_modules/undici/types/agent.d.ts | 31 + node_modules/undici/types/api.d.ts | 43 + node_modules/undici/types/balanced-pool.d.ts | 29 + node_modules/undici/types/cache.d.ts | 36 + node_modules/undici/types/client.d.ts | 108 + node_modules/undici/types/connector.d.ts | 34 + node_modules/undici/types/content-type.d.ts | 21 + node_modules/undici/types/cookies.d.ts | 28 + .../undici/types/diagnostics-channel.d.ts | 66 + node_modules/undici/types/dispatcher.d.ts | 256 + .../undici/types/env-http-proxy-agent.d.ts | 21 + node_modules/undici/types/errors.d.ts | 155 + node_modules/undici/types/eventsource.d.ts | 61 + node_modules/undici/types/fetch.d.ts | 209 + node_modules/undici/types/file.d.ts | 39 + node_modules/undici/types/filereader.d.ts | 54 + node_modules/undici/types/formdata.d.ts | 108 + .../undici/types/global-dispatcher.d.ts | 9 + node_modules/undici/types/global-origin.d.ts | 7 + node_modules/undici/types/handlers.d.ts | 15 + node_modules/undici/types/header.d.ts | 4 + node_modules/undici/types/index.d.ts | 71 + node_modules/undici/types/interceptors.d.ts | 32 + node_modules/undici/types/mock-agent.d.ts | 50 + node_modules/undici/types/mock-client.d.ts | 25 + node_modules/undici/types/mock-errors.d.ts | 12 + .../undici/types/mock-interceptor.d.ts | 93 + node_modules/undici/types/mock-pool.d.ts | 25 + node_modules/undici/types/patch.d.ts | 33 + node_modules/undici/types/pool-stats.d.ts | 19 + node_modules/undici/types/pool.d.ts | 39 + node_modules/undici/types/proxy-agent.d.ts | 29 + node_modules/undici/types/readable.d.ts | 65 + node_modules/undici/types/retry-agent.d.ts | 8 + node_modules/undici/types/retry-handler.d.ts | 116 + node_modules/undici/types/util.d.ts | 18 + node_modules/undici/types/webidl.d.ts | 228 + node_modules/undici/types/websocket.d.ts | 150 + node_modules/unpipe/HISTORY.md | 4 + node_modules/unpipe/LICENSE | 22 + node_modules/unpipe/README.md | 43 + node_modules/unpipe/index.js | 69 + node_modules/unpipe/package.json | 27 + node_modules/utils-merge/.npmignore | 9 + node_modules/utils-merge/LICENSE | 20 + node_modules/utils-merge/README.md | 34 + node_modules/utils-merge/index.js | 23 + node_modules/utils-merge/package.json | 40 + node_modules/vary/HISTORY.md | 39 + node_modules/vary/LICENSE | 22 + node_modules/vary/README.md | 101 + node_modules/vary/index.js | 149 + node_modules/vary/package.json | 43 + node_modules/ws/LICENSE | 20 + node_modules/ws/README.md | 548 + node_modules/ws/browser.js | 8 + node_modules/ws/index.js | 22 + node_modules/ws/lib/buffer-util.js | 131 + node_modules/ws/lib/constants.js | 19 + node_modules/ws/lib/event-target.js | 292 + node_modules/ws/lib/extension.js | 203 + node_modules/ws/lib/limiter.js | 55 + node_modules/ws/lib/permessage-deflate.js | 528 + node_modules/ws/lib/receiver.js | 706 + node_modules/ws/lib/sender.js | 602 + node_modules/ws/lib/stream.js | 161 + node_modules/ws/lib/subprotocol.js | 62 + node_modules/ws/lib/validation.js | 152 + node_modules/ws/lib/websocket-server.js | 554 + node_modules/ws/lib/websocket.js | 1393 + node_modules/ws/package.json | 70 + node_modules/ws/wrapper.mjs | 21 + node_modules/xml/.npmignore | 2 + node_modules/xml/.travis.yml | 8 + node_modules/xml/LICENSE | 22 + node_modules/xml/examples/examples.js | 81 + node_modules/xml/examples/server.js | 24 + node_modules/xml/lib/escapeForXML.js | 18 + node_modules/xml/lib/xml.js | 282 + node_modules/xml/package.json | 38 + node_modules/xml/readme.md | 184 + node_modules/xml/test/xml.test.js | 150 + package-lock.json | 1198 + package.json | 21 + src/bot.js | 88 + src/database.js | 145 + src/index.js | 98 + src/rss.js | 62 + 3743 files changed, 761346 insertions(+) create mode 100644 .claude/settings.local.json create mode 100644 .env create mode 100644 README.md create mode 100644 data/messages.db create mode 120000 node_modules/.bin/mime create mode 100644 node_modules/.package-lock.json create mode 100644 node_modules/@discordjs/builders/LICENSE create mode 100644 node_modules/@discordjs/builders/README.md create mode 100644 node_modules/@discordjs/builders/dist/index.d.mts create mode 100644 node_modules/@discordjs/builders/dist/index.d.ts create mode 100644 node_modules/@discordjs/builders/dist/index.js create mode 100644 node_modules/@discordjs/builders/dist/index.js.map create mode 100644 node_modules/@discordjs/builders/dist/index.mjs create mode 100644 node_modules/@discordjs/builders/dist/index.mjs.map create mode 100644 node_modules/@discordjs/builders/package.json create mode 100644 node_modules/@discordjs/collection/CHANGELOG.md create mode 100644 node_modules/@discordjs/collection/LICENSE create mode 100644 node_modules/@discordjs/collection/README.md create mode 100644 node_modules/@discordjs/collection/dist/index.d.mts create mode 100644 node_modules/@discordjs/collection/dist/index.d.ts create mode 100644 node_modules/@discordjs/collection/dist/index.js create mode 100644 node_modules/@discordjs/collection/dist/index.js.map create mode 100644 node_modules/@discordjs/collection/dist/index.mjs create mode 100644 node_modules/@discordjs/collection/dist/index.mjs.map create mode 100644 node_modules/@discordjs/collection/package.json create mode 100644 node_modules/@discordjs/formatters/LICENSE create mode 100644 node_modules/@discordjs/formatters/README.md create mode 100644 node_modules/@discordjs/formatters/dist/index.d.mts create mode 100644 node_modules/@discordjs/formatters/dist/index.d.ts create mode 100644 node_modules/@discordjs/formatters/dist/index.js create mode 100644 node_modules/@discordjs/formatters/dist/index.js.map create mode 100644 node_modules/@discordjs/formatters/dist/index.mjs create mode 100644 node_modules/@discordjs/formatters/dist/index.mjs.map create mode 100644 node_modules/@discordjs/formatters/package.json create mode 100644 node_modules/@discordjs/rest/LICENSE create mode 100644 node_modules/@discordjs/rest/README.md create mode 100644 node_modules/@discordjs/rest/dist/index.d.mts create mode 100644 node_modules/@discordjs/rest/dist/index.d.ts create mode 100644 node_modules/@discordjs/rest/dist/index.js create mode 100644 node_modules/@discordjs/rest/dist/index.js.map create mode 100644 node_modules/@discordjs/rest/dist/index.mjs create mode 100644 node_modules/@discordjs/rest/dist/index.mjs.map create mode 100644 node_modules/@discordjs/rest/dist/strategies/undiciRequest.d.mts create mode 100644 node_modules/@discordjs/rest/dist/strategies/undiciRequest.d.ts create mode 100644 node_modules/@discordjs/rest/dist/strategies/undiciRequest.js create mode 100644 node_modules/@discordjs/rest/dist/strategies/undiciRequest.js.map create mode 100644 node_modules/@discordjs/rest/dist/strategies/undiciRequest.mjs create mode 100644 node_modules/@discordjs/rest/dist/strategies/undiciRequest.mjs.map create mode 100644 node_modules/@discordjs/rest/dist/web.d.mts create mode 100644 node_modules/@discordjs/rest/dist/web.d.ts create mode 100644 node_modules/@discordjs/rest/dist/web.js create mode 100644 node_modules/@discordjs/rest/dist/web.js.map create mode 100644 node_modules/@discordjs/rest/dist/web.mjs create mode 100644 node_modules/@discordjs/rest/dist/web.mjs.map create mode 100644 node_modules/@discordjs/rest/node_modules/@discordjs/collection/LICENSE create mode 100644 node_modules/@discordjs/rest/node_modules/@discordjs/collection/README.md create mode 100644 node_modules/@discordjs/rest/node_modules/@discordjs/collection/dist/index.d.mts create mode 100644 node_modules/@discordjs/rest/node_modules/@discordjs/collection/dist/index.d.ts create mode 100644 node_modules/@discordjs/rest/node_modules/@discordjs/collection/dist/index.js create mode 100644 node_modules/@discordjs/rest/node_modules/@discordjs/collection/dist/index.js.map create mode 100644 node_modules/@discordjs/rest/node_modules/@discordjs/collection/dist/index.mjs create mode 100644 node_modules/@discordjs/rest/node_modules/@discordjs/collection/dist/index.mjs.map create mode 100644 node_modules/@discordjs/rest/node_modules/@discordjs/collection/package.json create mode 100644 node_modules/@discordjs/rest/node_modules/@sapphire/snowflake/CHANGELOG.md create mode 100644 node_modules/@discordjs/rest/node_modules/@sapphire/snowflake/README.md create mode 100644 node_modules/@discordjs/rest/node_modules/@sapphire/snowflake/dist/cjs/index.cjs create mode 100644 node_modules/@discordjs/rest/node_modules/@sapphire/snowflake/dist/cjs/index.cjs.map create mode 100644 node_modules/@discordjs/rest/node_modules/@sapphire/snowflake/dist/cjs/index.d.cts create mode 100644 node_modules/@discordjs/rest/node_modules/@sapphire/snowflake/dist/esm/index.d.mts create mode 100644 node_modules/@discordjs/rest/node_modules/@sapphire/snowflake/dist/esm/index.mjs create mode 100644 node_modules/@discordjs/rest/node_modules/@sapphire/snowflake/dist/esm/index.mjs.map create mode 100644 node_modules/@discordjs/rest/node_modules/@sapphire/snowflake/dist/iife/index.global.js create mode 100644 node_modules/@discordjs/rest/node_modules/@sapphire/snowflake/dist/iife/index.global.js.map create mode 100644 node_modules/@discordjs/rest/node_modules/@sapphire/snowflake/package.json create mode 100644 node_modules/@discordjs/rest/package.json create mode 100644 node_modules/@discordjs/util/LICENSE create mode 100644 node_modules/@discordjs/util/README.md create mode 100644 node_modules/@discordjs/util/dist/index.d.mts create mode 100644 node_modules/@discordjs/util/dist/index.d.ts create mode 100644 node_modules/@discordjs/util/dist/index.js create mode 100644 node_modules/@discordjs/util/dist/index.js.map create mode 100644 node_modules/@discordjs/util/dist/index.mjs create mode 100644 node_modules/@discordjs/util/dist/index.mjs.map create mode 100644 node_modules/@discordjs/util/package.json create mode 100644 node_modules/@discordjs/ws/LICENSE create mode 100644 node_modules/@discordjs/ws/README.md create mode 100644 node_modules/@discordjs/ws/dist/defaultWorker.d.mts create mode 100644 node_modules/@discordjs/ws/dist/defaultWorker.d.ts create mode 100644 node_modules/@discordjs/ws/dist/defaultWorker.js create mode 100644 node_modules/@discordjs/ws/dist/defaultWorker.js.map create mode 100644 node_modules/@discordjs/ws/dist/defaultWorker.mjs create mode 100644 node_modules/@discordjs/ws/dist/defaultWorker.mjs.map create mode 100644 node_modules/@discordjs/ws/dist/index.d.mts create mode 100644 node_modules/@discordjs/ws/dist/index.d.ts create mode 100644 node_modules/@discordjs/ws/dist/index.js create mode 100644 node_modules/@discordjs/ws/dist/index.js.map create mode 100644 node_modules/@discordjs/ws/dist/index.mjs create mode 100644 node_modules/@discordjs/ws/dist/index.mjs.map create mode 100644 node_modules/@discordjs/ws/node_modules/@discordjs/collection/LICENSE create mode 100644 node_modules/@discordjs/ws/node_modules/@discordjs/collection/README.md create mode 100644 node_modules/@discordjs/ws/node_modules/@discordjs/collection/dist/index.d.mts create mode 100644 node_modules/@discordjs/ws/node_modules/@discordjs/collection/dist/index.d.ts create mode 100644 node_modules/@discordjs/ws/node_modules/@discordjs/collection/dist/index.js create mode 100644 node_modules/@discordjs/ws/node_modules/@discordjs/collection/dist/index.js.map create mode 100644 node_modules/@discordjs/ws/node_modules/@discordjs/collection/dist/index.mjs create mode 100644 node_modules/@discordjs/ws/node_modules/@discordjs/collection/dist/index.mjs.map create mode 100644 node_modules/@discordjs/ws/node_modules/@discordjs/collection/package.json create mode 100644 node_modules/@discordjs/ws/package.json create mode 100644 node_modules/@sapphire/async-queue/CHANGELOG.md create mode 100644 node_modules/@sapphire/async-queue/README.md create mode 100644 node_modules/@sapphire/async-queue/dist/cjs/index.cjs create mode 100644 node_modules/@sapphire/async-queue/dist/cjs/index.cjs.map create mode 100644 node_modules/@sapphire/async-queue/dist/cjs/index.d.cts create mode 100644 node_modules/@sapphire/async-queue/dist/esm/index.d.mts create mode 100644 node_modules/@sapphire/async-queue/dist/esm/index.mjs create mode 100644 node_modules/@sapphire/async-queue/dist/esm/index.mjs.map create mode 100644 node_modules/@sapphire/async-queue/dist/iife/index.global.js create mode 100644 node_modules/@sapphire/async-queue/dist/iife/index.global.js.map create mode 100644 node_modules/@sapphire/async-queue/package.json create mode 100644 node_modules/@sapphire/shapeshift/CHANGELOG.md create mode 100644 node_modules/@sapphire/shapeshift/LICENSE.md create mode 100644 node_modules/@sapphire/shapeshift/README.md create mode 100644 node_modules/@sapphire/shapeshift/UPGRADING-v3-v4.md create mode 100644 node_modules/@sapphire/shapeshift/dist/cjs/index.cjs create mode 100644 node_modules/@sapphire/shapeshift/dist/cjs/index.cjs.map create mode 100644 node_modules/@sapphire/shapeshift/dist/cjs/index.d.cts create mode 100644 node_modules/@sapphire/shapeshift/dist/esm/index.d.mts create mode 100644 node_modules/@sapphire/shapeshift/dist/esm/index.mjs create mode 100644 node_modules/@sapphire/shapeshift/dist/esm/index.mjs.map create mode 100644 node_modules/@sapphire/shapeshift/dist/iife/index.global.js create mode 100644 node_modules/@sapphire/shapeshift/dist/iife/index.global.js.map create mode 100644 node_modules/@sapphire/shapeshift/package.json create mode 100644 node_modules/@sapphire/snowflake/CHANGELOG.md create mode 100644 node_modules/@sapphire/snowflake/README.md create mode 100644 node_modules/@sapphire/snowflake/dist/cjs/index.cjs create mode 100644 node_modules/@sapphire/snowflake/dist/cjs/index.cjs.map create mode 100644 node_modules/@sapphire/snowflake/dist/cjs/index.d.cts create mode 100644 node_modules/@sapphire/snowflake/dist/esm/index.d.mts create mode 100644 node_modules/@sapphire/snowflake/dist/esm/index.mjs create mode 100644 node_modules/@sapphire/snowflake/dist/esm/index.mjs.map create mode 100644 node_modules/@sapphire/snowflake/dist/iife/index.global.js create mode 100644 node_modules/@sapphire/snowflake/dist/iife/index.global.js.map create mode 100644 node_modules/@sapphire/snowflake/package.json create mode 100644 node_modules/@types/node/LICENSE create mode 100644 node_modules/@types/node/README.md create mode 100644 node_modules/@types/node/assert.d.ts create mode 100644 node_modules/@types/node/assert/strict.d.ts create mode 100644 node_modules/@types/node/async_hooks.d.ts create mode 100644 node_modules/@types/node/buffer.buffer.d.ts create mode 100644 node_modules/@types/node/buffer.d.ts create mode 100644 node_modules/@types/node/child_process.d.ts create mode 100644 node_modules/@types/node/cluster.d.ts create mode 100644 node_modules/@types/node/compatibility/iterators.d.ts create mode 100644 node_modules/@types/node/console.d.ts create mode 100644 node_modules/@types/node/constants.d.ts create mode 100644 node_modules/@types/node/crypto.d.ts create mode 100644 node_modules/@types/node/dgram.d.ts create mode 100644 node_modules/@types/node/diagnostics_channel.d.ts create mode 100644 node_modules/@types/node/dns.d.ts create mode 100644 node_modules/@types/node/dns/promises.d.ts create mode 100644 node_modules/@types/node/domain.d.ts create mode 100644 node_modules/@types/node/events.d.ts create mode 100644 node_modules/@types/node/fs.d.ts create mode 100644 node_modules/@types/node/fs/promises.d.ts create mode 100644 node_modules/@types/node/globals.d.ts create mode 100644 node_modules/@types/node/globals.typedarray.d.ts create mode 100644 node_modules/@types/node/http.d.ts create mode 100644 node_modules/@types/node/http2.d.ts create mode 100644 node_modules/@types/node/https.d.ts create mode 100644 node_modules/@types/node/index.d.ts create mode 100644 node_modules/@types/node/inspector.d.ts create mode 100644 node_modules/@types/node/inspector.generated.d.ts create mode 100644 node_modules/@types/node/inspector/promises.d.ts create mode 100644 node_modules/@types/node/module.d.ts create mode 100644 node_modules/@types/node/net.d.ts create mode 100644 node_modules/@types/node/os.d.ts create mode 100644 node_modules/@types/node/package.json create mode 100644 node_modules/@types/node/path.d.ts create mode 100644 node_modules/@types/node/path/posix.d.ts create mode 100644 node_modules/@types/node/path/win32.d.ts create mode 100644 node_modules/@types/node/perf_hooks.d.ts create mode 100644 node_modules/@types/node/process.d.ts create mode 100644 node_modules/@types/node/punycode.d.ts create mode 100644 node_modules/@types/node/querystring.d.ts create mode 100644 node_modules/@types/node/quic.d.ts create mode 100644 node_modules/@types/node/readline.d.ts create mode 100644 node_modules/@types/node/readline/promises.d.ts create mode 100644 node_modules/@types/node/repl.d.ts create mode 100644 node_modules/@types/node/sea.d.ts create mode 100644 node_modules/@types/node/sqlite.d.ts create mode 100644 node_modules/@types/node/stream.d.ts create mode 100644 node_modules/@types/node/stream/consumers.d.ts create mode 100644 node_modules/@types/node/stream/promises.d.ts create mode 100644 node_modules/@types/node/stream/web.d.ts create mode 100644 node_modules/@types/node/string_decoder.d.ts create mode 100644 node_modules/@types/node/test.d.ts create mode 100644 node_modules/@types/node/test/reporters.d.ts create mode 100644 node_modules/@types/node/timers.d.ts create mode 100644 node_modules/@types/node/timers/promises.d.ts create mode 100644 node_modules/@types/node/tls.d.ts create mode 100644 node_modules/@types/node/trace_events.d.ts create mode 100644 node_modules/@types/node/ts5.6/buffer.buffer.d.ts create mode 100644 node_modules/@types/node/ts5.6/compatibility/float16array.d.ts create mode 100644 node_modules/@types/node/ts5.6/globals.typedarray.d.ts create mode 100644 node_modules/@types/node/ts5.6/index.d.ts create mode 100644 node_modules/@types/node/ts5.7/compatibility/float16array.d.ts create mode 100644 node_modules/@types/node/ts5.7/index.d.ts create mode 100644 node_modules/@types/node/tty.d.ts create mode 100644 node_modules/@types/node/url.d.ts create mode 100644 node_modules/@types/node/util.d.ts create mode 100644 node_modules/@types/node/util/types.d.ts create mode 100644 node_modules/@types/node/v8.d.ts create mode 100644 node_modules/@types/node/vm.d.ts create mode 100644 node_modules/@types/node/wasi.d.ts create mode 100644 node_modules/@types/node/web-globals/abortcontroller.d.ts create mode 100644 node_modules/@types/node/web-globals/blob.d.ts create mode 100644 node_modules/@types/node/web-globals/console.d.ts create mode 100644 node_modules/@types/node/web-globals/crypto.d.ts create mode 100644 node_modules/@types/node/web-globals/domexception.d.ts create mode 100644 node_modules/@types/node/web-globals/encoding.d.ts create mode 100644 node_modules/@types/node/web-globals/events.d.ts create mode 100644 node_modules/@types/node/web-globals/fetch.d.ts create mode 100644 node_modules/@types/node/web-globals/importmeta.d.ts create mode 100644 node_modules/@types/node/web-globals/messaging.d.ts create mode 100644 node_modules/@types/node/web-globals/navigator.d.ts create mode 100644 node_modules/@types/node/web-globals/performance.d.ts create mode 100644 node_modules/@types/node/web-globals/storage.d.ts create mode 100644 node_modules/@types/node/web-globals/streams.d.ts create mode 100644 node_modules/@types/node/web-globals/timers.d.ts create mode 100644 node_modules/@types/node/web-globals/url.d.ts create mode 100644 node_modules/@types/node/worker_threads.d.ts create mode 100644 node_modules/@types/node/zlib.d.ts create mode 100644 node_modules/@types/ws/LICENSE create mode 100644 node_modules/@types/ws/README.md create mode 100644 node_modules/@types/ws/index.d.mts create mode 100644 node_modules/@types/ws/index.d.ts create mode 100644 node_modules/@types/ws/package.json create mode 100644 node_modules/@vladfrangu/async_event_emitter/CHANGELOG.md create mode 100644 node_modules/@vladfrangu/async_event_emitter/LICENSE.md create mode 100644 node_modules/@vladfrangu/async_event_emitter/README.md create mode 100644 node_modules/@vladfrangu/async_event_emitter/THIRD_PARTY_LICENSE.md create mode 100644 node_modules/@vladfrangu/async_event_emitter/dist/index.cjs create mode 100644 node_modules/@vladfrangu/async_event_emitter/dist/index.cjs.map create mode 100644 node_modules/@vladfrangu/async_event_emitter/dist/index.d.mts create mode 100644 node_modules/@vladfrangu/async_event_emitter/dist/index.d.ts create mode 100644 node_modules/@vladfrangu/async_event_emitter/dist/index.global.js create mode 100644 node_modules/@vladfrangu/async_event_emitter/dist/index.global.js.map create mode 100644 node_modules/@vladfrangu/async_event_emitter/dist/index.mjs create mode 100644 node_modules/@vladfrangu/async_event_emitter/dist/index.mjs.map create mode 100644 node_modules/@vladfrangu/async_event_emitter/package.json create mode 100644 node_modules/accepts/HISTORY.md create mode 100644 node_modules/accepts/LICENSE create mode 100644 node_modules/accepts/README.md create mode 100644 node_modules/accepts/index.js create mode 100644 node_modules/accepts/package.json create mode 100644 node_modules/array-flatten/LICENSE create mode 100644 node_modules/array-flatten/README.md create mode 100644 node_modules/array-flatten/array-flatten.js create mode 100644 node_modules/array-flatten/package.json create mode 100644 node_modules/body-parser/HISTORY.md create mode 100644 node_modules/body-parser/LICENSE create mode 100644 node_modules/body-parser/README.md create mode 100644 node_modules/body-parser/index.js create mode 100644 node_modules/body-parser/lib/read.js create mode 100644 node_modules/body-parser/lib/types/json.js create mode 100644 node_modules/body-parser/lib/types/raw.js create mode 100644 node_modules/body-parser/lib/types/text.js create mode 100644 node_modules/body-parser/lib/types/urlencoded.js create mode 100644 node_modules/body-parser/package.json create mode 100644 node_modules/bytes/History.md create mode 100644 node_modules/bytes/LICENSE create mode 100644 node_modules/bytes/Readme.md create mode 100644 node_modules/bytes/index.js create mode 100644 node_modules/bytes/package.json create mode 100644 node_modules/call-bind-apply-helpers/.eslintrc create mode 100644 node_modules/call-bind-apply-helpers/.github/FUNDING.yml create mode 100644 node_modules/call-bind-apply-helpers/.nycrc create mode 100644 node_modules/call-bind-apply-helpers/CHANGELOG.md create mode 100644 node_modules/call-bind-apply-helpers/LICENSE create mode 100644 node_modules/call-bind-apply-helpers/README.md create mode 100644 node_modules/call-bind-apply-helpers/actualApply.d.ts create mode 100644 node_modules/call-bind-apply-helpers/actualApply.js create mode 100644 node_modules/call-bind-apply-helpers/applyBind.d.ts create mode 100644 node_modules/call-bind-apply-helpers/applyBind.js create mode 100644 node_modules/call-bind-apply-helpers/functionApply.d.ts create mode 100644 node_modules/call-bind-apply-helpers/functionApply.js create mode 100644 node_modules/call-bind-apply-helpers/functionCall.d.ts create mode 100644 node_modules/call-bind-apply-helpers/functionCall.js create mode 100644 node_modules/call-bind-apply-helpers/index.d.ts create mode 100644 node_modules/call-bind-apply-helpers/index.js create mode 100644 node_modules/call-bind-apply-helpers/package.json create mode 100644 node_modules/call-bind-apply-helpers/reflectApply.d.ts create mode 100644 node_modules/call-bind-apply-helpers/reflectApply.js create mode 100644 node_modules/call-bind-apply-helpers/test/index.js create mode 100644 node_modules/call-bind-apply-helpers/tsconfig.json create mode 100644 node_modules/call-bound/.eslintrc create mode 100644 node_modules/call-bound/.github/FUNDING.yml create mode 100644 node_modules/call-bound/.nycrc create mode 100644 node_modules/call-bound/CHANGELOG.md create mode 100644 node_modules/call-bound/LICENSE create mode 100644 node_modules/call-bound/README.md create mode 100644 node_modules/call-bound/index.d.ts create mode 100644 node_modules/call-bound/index.js create mode 100644 node_modules/call-bound/package.json create mode 100644 node_modules/call-bound/test/index.js create mode 100644 node_modules/call-bound/tsconfig.json create mode 100644 node_modules/content-disposition/HISTORY.md create mode 100644 node_modules/content-disposition/LICENSE create mode 100644 node_modules/content-disposition/README.md create mode 100644 node_modules/content-disposition/index.js create mode 100644 node_modules/content-disposition/package.json create mode 100644 node_modules/content-type/HISTORY.md create mode 100644 node_modules/content-type/LICENSE create mode 100644 node_modules/content-type/README.md create mode 100644 node_modules/content-type/index.js create mode 100644 node_modules/content-type/package.json create mode 100644 node_modules/cookie-signature/History.md create mode 100644 node_modules/cookie-signature/Readme.md create mode 100644 node_modules/cookie-signature/index.js create mode 100644 node_modules/cookie-signature/package.json create mode 100644 node_modules/cookie/LICENSE create mode 100644 node_modules/cookie/README.md create mode 100644 node_modules/cookie/SECURITY.md create mode 100644 node_modules/cookie/index.js create mode 100644 node_modules/cookie/package.json create mode 100644 node_modules/debug/.coveralls.yml create mode 100644 node_modules/debug/.eslintrc create mode 100644 node_modules/debug/.npmignore create mode 100644 node_modules/debug/.travis.yml create mode 100644 node_modules/debug/CHANGELOG.md create mode 100644 node_modules/debug/LICENSE create mode 100644 node_modules/debug/Makefile create mode 100644 node_modules/debug/README.md create mode 100644 node_modules/debug/component.json create mode 100644 node_modules/debug/karma.conf.js create mode 100644 node_modules/debug/node.js create mode 100644 node_modules/debug/package.json create mode 100644 node_modules/debug/src/browser.js create mode 100644 node_modules/debug/src/debug.js create mode 100644 node_modules/debug/src/index.js create mode 100644 node_modules/debug/src/inspector-log.js create mode 100644 node_modules/debug/src/node.js create mode 100644 node_modules/depd/History.md create mode 100644 node_modules/depd/LICENSE create mode 100644 node_modules/depd/Readme.md create mode 100644 node_modules/depd/index.js create mode 100644 node_modules/depd/lib/browser/index.js create mode 100644 node_modules/depd/package.json create mode 100644 node_modules/destroy/LICENSE create mode 100644 node_modules/destroy/README.md create mode 100644 node_modules/destroy/index.js create mode 100644 node_modules/destroy/package.json create mode 100644 node_modules/discord-api-types/CHANGELOG.md create mode 100644 node_modules/discord-api-types/LICENSE create mode 100644 node_modules/discord-api-types/README.md create mode 100644 node_modules/discord-api-types/_generated_/rest/v10/interfaces.d.ts create mode 100644 node_modules/discord-api-types/_generated_/rest/v10/interfaces.d.ts.map create mode 100644 node_modules/discord-api-types/_generated_/rest/v10/interfaces.js create mode 100644 node_modules/discord-api-types/_generated_/rest/v10/interfaces.js.map create mode 100644 node_modules/discord-api-types/_generated_/rest/v9/interfaces.d.ts create mode 100644 node_modules/discord-api-types/_generated_/rest/v9/interfaces.d.ts.map create mode 100644 node_modules/discord-api-types/_generated_/rest/v9/interfaces.js create mode 100644 node_modules/discord-api-types/_generated_/rest/v9/interfaces.js.map create mode 100644 node_modules/discord-api-types/gateway/common.d.ts create mode 100644 node_modules/discord-api-types/gateway/common.d.ts.map create mode 100644 node_modules/discord-api-types/gateway/common.js create mode 100644 node_modules/discord-api-types/gateway/common.js.map create mode 100644 node_modules/discord-api-types/gateway/index.d.ts create mode 100644 node_modules/discord-api-types/gateway/index.d.ts.map create mode 100644 node_modules/discord-api-types/gateway/index.js create mode 100644 node_modules/discord-api-types/gateway/index.js.map create mode 100644 node_modules/discord-api-types/gateway/index.mjs create mode 100644 node_modules/discord-api-types/gateway/v10.d.ts create mode 100644 node_modules/discord-api-types/gateway/v10.d.ts.map create mode 100644 node_modules/discord-api-types/gateway/v10.js create mode 100644 node_modules/discord-api-types/gateway/v10.js.map create mode 100644 node_modules/discord-api-types/gateway/v10.mjs create mode 100644 node_modules/discord-api-types/gateway/v6.d.ts create mode 100644 node_modules/discord-api-types/gateway/v6.d.ts.map create mode 100644 node_modules/discord-api-types/gateway/v6.js create mode 100644 node_modules/discord-api-types/gateway/v6.js.map create mode 100644 node_modules/discord-api-types/gateway/v6.mjs create mode 100644 node_modules/discord-api-types/gateway/v8.d.ts create mode 100644 node_modules/discord-api-types/gateway/v8.d.ts.map create mode 100644 node_modules/discord-api-types/gateway/v8.js create mode 100644 node_modules/discord-api-types/gateway/v8.js.map create mode 100644 node_modules/discord-api-types/gateway/v8.mjs create mode 100644 node_modules/discord-api-types/gateway/v9.d.ts create mode 100644 node_modules/discord-api-types/gateway/v9.d.ts.map create mode 100644 node_modules/discord-api-types/gateway/v9.js create mode 100644 node_modules/discord-api-types/gateway/v9.js.map create mode 100644 node_modules/discord-api-types/gateway/v9.mjs create mode 100644 node_modules/discord-api-types/globals.d.ts create mode 100644 node_modules/discord-api-types/globals.d.ts.map create mode 100644 node_modules/discord-api-types/globals.js create mode 100644 node_modules/discord-api-types/globals.js.map create mode 100644 node_modules/discord-api-types/globals.mjs create mode 100644 node_modules/discord-api-types/package.json create mode 100644 node_modules/discord-api-types/payloads/common.d.ts create mode 100644 node_modules/discord-api-types/payloads/common.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/common.js create mode 100644 node_modules/discord-api-types/payloads/common.js.map create mode 100644 node_modules/discord-api-types/payloads/index.d.ts create mode 100644 node_modules/discord-api-types/payloads/index.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/index.js create mode 100644 node_modules/discord-api-types/payloads/index.js.map create mode 100644 node_modules/discord-api-types/payloads/index.mjs create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/attachment.d.ts create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/attachment.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/attachment.js create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/attachment.js.map create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/base.d.ts create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/base.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/base.js create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/base.js.map create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/boolean.d.ts create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/boolean.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/boolean.js create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/boolean.js.map create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/channel.d.ts create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/channel.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/channel.js create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/channel.js.map create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/integer.d.ts create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/integer.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/integer.js create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/integer.js.map create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/mentionable.d.ts create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/mentionable.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/mentionable.js create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/mentionable.js.map create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/number.d.ts create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/number.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/number.js create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/number.js.map create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/role.d.ts create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/role.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/role.js create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/role.js.map create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/shared.d.ts create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/shared.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/shared.js create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/shared.js.map create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/string.d.ts create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/string.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/string.js create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/string.js.map create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/subcommand.d.ts create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/subcommand.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/subcommand.js create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/subcommand.js.map create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/subcommandGroup.d.ts create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/subcommandGroup.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/subcommandGroup.js create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/subcommandGroup.js.map create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/user.d.ts create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/user.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/user.js create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/user.js.map create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/chatInput.d.ts create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/chatInput.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/chatInput.js create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/chatInput.js.map create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/contextMenu.d.ts create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/contextMenu.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/contextMenu.js create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/contextMenu.js.map create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/entryPoint.d.ts create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/entryPoint.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/entryPoint.js create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/entryPoint.js.map create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/internals.d.ts create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/internals.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/internals.js create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/internals.js.map create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/permissions.d.ts create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/permissions.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/permissions.js create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/_applicationCommands/permissions.js.map create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/applicationCommands.d.ts create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/applicationCommands.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/applicationCommands.js create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/applicationCommands.js.map create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/autocomplete.d.ts create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/autocomplete.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/autocomplete.js create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/autocomplete.js.map create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/base.d.ts create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/base.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/base.js create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/base.js.map create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/messageComponents.d.ts create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/messageComponents.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/messageComponents.js create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/messageComponents.js.map create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/modalSubmit.d.ts create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/modalSubmit.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/modalSubmit.js create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/modalSubmit.js.map create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/ping.d.ts create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/ping.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/ping.js create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/ping.js.map create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/responses.d.ts create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/responses.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/responses.js create mode 100644 node_modules/discord-api-types/payloads/v10/_interactions/responses.js.map create mode 100644 node_modules/discord-api-types/payloads/v10/application.d.ts create mode 100644 node_modules/discord-api-types/payloads/v10/application.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v10/application.js create mode 100644 node_modules/discord-api-types/payloads/v10/application.js.map create mode 100644 node_modules/discord-api-types/payloads/v10/auditLog.d.ts create mode 100644 node_modules/discord-api-types/payloads/v10/auditLog.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v10/auditLog.js create mode 100644 node_modules/discord-api-types/payloads/v10/auditLog.js.map create mode 100644 node_modules/discord-api-types/payloads/v10/autoModeration.d.ts create mode 100644 node_modules/discord-api-types/payloads/v10/autoModeration.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v10/autoModeration.js create mode 100644 node_modules/discord-api-types/payloads/v10/autoModeration.js.map create mode 100644 node_modules/discord-api-types/payloads/v10/channel.d.ts create mode 100644 node_modules/discord-api-types/payloads/v10/channel.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v10/channel.js create mode 100644 node_modules/discord-api-types/payloads/v10/channel.js.map create mode 100644 node_modules/discord-api-types/payloads/v10/emoji.d.ts create mode 100644 node_modules/discord-api-types/payloads/v10/emoji.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v10/emoji.js create mode 100644 node_modules/discord-api-types/payloads/v10/emoji.js.map create mode 100644 node_modules/discord-api-types/payloads/v10/gateway.d.ts create mode 100644 node_modules/discord-api-types/payloads/v10/gateway.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v10/gateway.js create mode 100644 node_modules/discord-api-types/payloads/v10/gateway.js.map create mode 100644 node_modules/discord-api-types/payloads/v10/guild.d.ts create mode 100644 node_modules/discord-api-types/payloads/v10/guild.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v10/guild.js create mode 100644 node_modules/discord-api-types/payloads/v10/guild.js.map create mode 100644 node_modules/discord-api-types/payloads/v10/guildScheduledEvent.d.ts create mode 100644 node_modules/discord-api-types/payloads/v10/guildScheduledEvent.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v10/guildScheduledEvent.js create mode 100644 node_modules/discord-api-types/payloads/v10/guildScheduledEvent.js.map create mode 100644 node_modules/discord-api-types/payloads/v10/index.d.ts create mode 100644 node_modules/discord-api-types/payloads/v10/index.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v10/index.js create mode 100644 node_modules/discord-api-types/payloads/v10/index.js.map create mode 100644 node_modules/discord-api-types/payloads/v10/index.mjs create mode 100644 node_modules/discord-api-types/payloads/v10/interactions.d.ts create mode 100644 node_modules/discord-api-types/payloads/v10/interactions.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v10/interactions.js create mode 100644 node_modules/discord-api-types/payloads/v10/interactions.js.map create mode 100644 node_modules/discord-api-types/payloads/v10/invite.d.ts create mode 100644 node_modules/discord-api-types/payloads/v10/invite.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v10/invite.js create mode 100644 node_modules/discord-api-types/payloads/v10/invite.js.map create mode 100644 node_modules/discord-api-types/payloads/v10/message.d.ts create mode 100644 node_modules/discord-api-types/payloads/v10/message.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v10/message.js create mode 100644 node_modules/discord-api-types/payloads/v10/message.js.map create mode 100644 node_modules/discord-api-types/payloads/v10/monetization.d.ts create mode 100644 node_modules/discord-api-types/payloads/v10/monetization.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v10/monetization.js create mode 100644 node_modules/discord-api-types/payloads/v10/monetization.js.map create mode 100644 node_modules/discord-api-types/payloads/v10/oauth2.d.ts create mode 100644 node_modules/discord-api-types/payloads/v10/oauth2.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v10/oauth2.js create mode 100644 node_modules/discord-api-types/payloads/v10/oauth2.js.map create mode 100644 node_modules/discord-api-types/payloads/v10/permissions.d.ts create mode 100644 node_modules/discord-api-types/payloads/v10/permissions.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v10/permissions.js create mode 100644 node_modules/discord-api-types/payloads/v10/permissions.js.map create mode 100644 node_modules/discord-api-types/payloads/v10/poll.d.ts create mode 100644 node_modules/discord-api-types/payloads/v10/poll.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v10/poll.js create mode 100644 node_modules/discord-api-types/payloads/v10/poll.js.map create mode 100644 node_modules/discord-api-types/payloads/v10/soundboard.d.ts create mode 100644 node_modules/discord-api-types/payloads/v10/soundboard.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v10/soundboard.js create mode 100644 node_modules/discord-api-types/payloads/v10/soundboard.js.map create mode 100644 node_modules/discord-api-types/payloads/v10/stageInstance.d.ts create mode 100644 node_modules/discord-api-types/payloads/v10/stageInstance.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v10/stageInstance.js create mode 100644 node_modules/discord-api-types/payloads/v10/stageInstance.js.map create mode 100644 node_modules/discord-api-types/payloads/v10/sticker.d.ts create mode 100644 node_modules/discord-api-types/payloads/v10/sticker.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v10/sticker.js create mode 100644 node_modules/discord-api-types/payloads/v10/sticker.js.map create mode 100644 node_modules/discord-api-types/payloads/v10/teams.d.ts create mode 100644 node_modules/discord-api-types/payloads/v10/teams.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v10/teams.js create mode 100644 node_modules/discord-api-types/payloads/v10/teams.js.map create mode 100644 node_modules/discord-api-types/payloads/v10/template.d.ts create mode 100644 node_modules/discord-api-types/payloads/v10/template.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v10/template.js create mode 100644 node_modules/discord-api-types/payloads/v10/template.js.map create mode 100644 node_modules/discord-api-types/payloads/v10/user.d.ts create mode 100644 node_modules/discord-api-types/payloads/v10/user.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v10/user.js create mode 100644 node_modules/discord-api-types/payloads/v10/user.js.map create mode 100644 node_modules/discord-api-types/payloads/v10/voice.d.ts create mode 100644 node_modules/discord-api-types/payloads/v10/voice.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v10/voice.js create mode 100644 node_modules/discord-api-types/payloads/v10/voice.js.map create mode 100644 node_modules/discord-api-types/payloads/v10/webhook.d.ts create mode 100644 node_modules/discord-api-types/payloads/v10/webhook.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v10/webhook.js create mode 100644 node_modules/discord-api-types/payloads/v10/webhook.js.map create mode 100644 node_modules/discord-api-types/payloads/v6/auditLog.d.ts create mode 100644 node_modules/discord-api-types/payloads/v6/auditLog.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v6/auditLog.js create mode 100644 node_modules/discord-api-types/payloads/v6/auditLog.js.map create mode 100644 node_modules/discord-api-types/payloads/v6/channel.d.ts create mode 100644 node_modules/discord-api-types/payloads/v6/channel.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v6/channel.js create mode 100644 node_modules/discord-api-types/payloads/v6/channel.js.map create mode 100644 node_modules/discord-api-types/payloads/v6/emoji.d.ts create mode 100644 node_modules/discord-api-types/payloads/v6/emoji.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v6/emoji.js create mode 100644 node_modules/discord-api-types/payloads/v6/emoji.js.map create mode 100644 node_modules/discord-api-types/payloads/v6/gateway.d.ts create mode 100644 node_modules/discord-api-types/payloads/v6/gateway.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v6/gateway.js create mode 100644 node_modules/discord-api-types/payloads/v6/gateway.js.map create mode 100644 node_modules/discord-api-types/payloads/v6/guild.d.ts create mode 100644 node_modules/discord-api-types/payloads/v6/guild.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v6/guild.js create mode 100644 node_modules/discord-api-types/payloads/v6/guild.js.map create mode 100644 node_modules/discord-api-types/payloads/v6/index.d.ts create mode 100644 node_modules/discord-api-types/payloads/v6/index.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v6/index.js create mode 100644 node_modules/discord-api-types/payloads/v6/index.js.map create mode 100644 node_modules/discord-api-types/payloads/v6/index.mjs create mode 100644 node_modules/discord-api-types/payloads/v6/invite.d.ts create mode 100644 node_modules/discord-api-types/payloads/v6/invite.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v6/invite.js create mode 100644 node_modules/discord-api-types/payloads/v6/invite.js.map create mode 100644 node_modules/discord-api-types/payloads/v6/oauth2.d.ts create mode 100644 node_modules/discord-api-types/payloads/v6/oauth2.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v6/oauth2.js create mode 100644 node_modules/discord-api-types/payloads/v6/oauth2.js.map create mode 100644 node_modules/discord-api-types/payloads/v6/permissions.d.ts create mode 100644 node_modules/discord-api-types/payloads/v6/permissions.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v6/permissions.js create mode 100644 node_modules/discord-api-types/payloads/v6/permissions.js.map create mode 100644 node_modules/discord-api-types/payloads/v6/teams.d.ts create mode 100644 node_modules/discord-api-types/payloads/v6/teams.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v6/teams.js create mode 100644 node_modules/discord-api-types/payloads/v6/teams.js.map create mode 100644 node_modules/discord-api-types/payloads/v6/user.d.ts create mode 100644 node_modules/discord-api-types/payloads/v6/user.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v6/user.js create mode 100644 node_modules/discord-api-types/payloads/v6/user.js.map create mode 100644 node_modules/discord-api-types/payloads/v6/voice.d.ts create mode 100644 node_modules/discord-api-types/payloads/v6/voice.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v6/voice.js create mode 100644 node_modules/discord-api-types/payloads/v6/voice.js.map create mode 100644 node_modules/discord-api-types/payloads/v6/webhook.d.ts create mode 100644 node_modules/discord-api-types/payloads/v6/webhook.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v6/webhook.js create mode 100644 node_modules/discord-api-types/payloads/v6/webhook.js.map create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/attachment.d.ts create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/attachment.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/attachment.js create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/attachment.js.map create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/base.d.ts create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/base.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/base.js create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/base.js.map create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/boolean.d.ts create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/boolean.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/boolean.js create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/boolean.js.map create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/channel.d.ts create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/channel.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/channel.js create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/channel.js.map create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/integer.d.ts create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/integer.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/integer.js create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/integer.js.map create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/mentionable.d.ts create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/mentionable.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/mentionable.js create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/mentionable.js.map create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/number.d.ts create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/number.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/number.js create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/number.js.map create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/role.d.ts create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/role.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/role.js create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/role.js.map create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/shared.d.ts create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/shared.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/shared.js create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/shared.js.map create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/string.d.ts create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/string.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/string.js create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/string.js.map create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/subcommand.d.ts create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/subcommand.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/subcommand.js create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/subcommand.js.map create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/subcommandGroup.d.ts create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/subcommandGroup.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/subcommandGroup.js create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/subcommandGroup.js.map create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/user.d.ts create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/user.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/user.js create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/_chatInput/user.js.map create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/chatInput.d.ts create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/chatInput.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/chatInput.js create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/chatInput.js.map create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/contextMenu.d.ts create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/contextMenu.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/contextMenu.js create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/contextMenu.js.map create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/internals.d.ts create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/internals.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/internals.js create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/internals.js.map create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/permissions.d.ts create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/permissions.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/permissions.js create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/_applicationCommands/permissions.js.map create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/applicationCommands.d.ts create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/applicationCommands.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/applicationCommands.js create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/applicationCommands.js.map create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/autocomplete.d.ts create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/autocomplete.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/autocomplete.js create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/autocomplete.js.map create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/base.d.ts create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/base.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/base.js create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/base.js.map create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/messageComponents.d.ts create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/messageComponents.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/messageComponents.js create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/messageComponents.js.map create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/modalSubmit.d.ts create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/modalSubmit.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/modalSubmit.js create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/modalSubmit.js.map create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/ping.d.ts create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/ping.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/ping.js create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/ping.js.map create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/responses.d.ts create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/responses.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/responses.js create mode 100644 node_modules/discord-api-types/payloads/v8/_interactions/responses.js.map create mode 100644 node_modules/discord-api-types/payloads/v8/application.d.ts create mode 100644 node_modules/discord-api-types/payloads/v8/application.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v8/application.js create mode 100644 node_modules/discord-api-types/payloads/v8/application.js.map create mode 100644 node_modules/discord-api-types/payloads/v8/auditLog.d.ts create mode 100644 node_modules/discord-api-types/payloads/v8/auditLog.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v8/auditLog.js create mode 100644 node_modules/discord-api-types/payloads/v8/auditLog.js.map create mode 100644 node_modules/discord-api-types/payloads/v8/channel.d.ts create mode 100644 node_modules/discord-api-types/payloads/v8/channel.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v8/channel.js create mode 100644 node_modules/discord-api-types/payloads/v8/channel.js.map create mode 100644 node_modules/discord-api-types/payloads/v8/emoji.d.ts create mode 100644 node_modules/discord-api-types/payloads/v8/emoji.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v8/emoji.js create mode 100644 node_modules/discord-api-types/payloads/v8/emoji.js.map create mode 100644 node_modules/discord-api-types/payloads/v8/gateway.d.ts create mode 100644 node_modules/discord-api-types/payloads/v8/gateway.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v8/gateway.js create mode 100644 node_modules/discord-api-types/payloads/v8/gateway.js.map create mode 100644 node_modules/discord-api-types/payloads/v8/guild.d.ts create mode 100644 node_modules/discord-api-types/payloads/v8/guild.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v8/guild.js create mode 100644 node_modules/discord-api-types/payloads/v8/guild.js.map create mode 100644 node_modules/discord-api-types/payloads/v8/guildScheduledEvent.d.ts create mode 100644 node_modules/discord-api-types/payloads/v8/guildScheduledEvent.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v8/guildScheduledEvent.js create mode 100644 node_modules/discord-api-types/payloads/v8/guildScheduledEvent.js.map create mode 100644 node_modules/discord-api-types/payloads/v8/index.d.ts create mode 100644 node_modules/discord-api-types/payloads/v8/index.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v8/index.js create mode 100644 node_modules/discord-api-types/payloads/v8/index.js.map create mode 100644 node_modules/discord-api-types/payloads/v8/index.mjs create mode 100644 node_modules/discord-api-types/payloads/v8/interactions.d.ts create mode 100644 node_modules/discord-api-types/payloads/v8/interactions.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v8/interactions.js create mode 100644 node_modules/discord-api-types/payloads/v8/interactions.js.map create mode 100644 node_modules/discord-api-types/payloads/v8/invite.d.ts create mode 100644 node_modules/discord-api-types/payloads/v8/invite.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v8/invite.js create mode 100644 node_modules/discord-api-types/payloads/v8/invite.js.map create mode 100644 node_modules/discord-api-types/payloads/v8/oauth2.d.ts create mode 100644 node_modules/discord-api-types/payloads/v8/oauth2.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v8/oauth2.js create mode 100644 node_modules/discord-api-types/payloads/v8/oauth2.js.map create mode 100644 node_modules/discord-api-types/payloads/v8/permissions.d.ts create mode 100644 node_modules/discord-api-types/payloads/v8/permissions.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v8/permissions.js create mode 100644 node_modules/discord-api-types/payloads/v8/permissions.js.map create mode 100644 node_modules/discord-api-types/payloads/v8/stageInstance.d.ts create mode 100644 node_modules/discord-api-types/payloads/v8/stageInstance.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v8/stageInstance.js create mode 100644 node_modules/discord-api-types/payloads/v8/stageInstance.js.map create mode 100644 node_modules/discord-api-types/payloads/v8/sticker.d.ts create mode 100644 node_modules/discord-api-types/payloads/v8/sticker.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v8/sticker.js create mode 100644 node_modules/discord-api-types/payloads/v8/sticker.js.map create mode 100644 node_modules/discord-api-types/payloads/v8/teams.d.ts create mode 100644 node_modules/discord-api-types/payloads/v8/teams.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v8/teams.js create mode 100644 node_modules/discord-api-types/payloads/v8/teams.js.map create mode 100644 node_modules/discord-api-types/payloads/v8/template.d.ts create mode 100644 node_modules/discord-api-types/payloads/v8/template.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v8/template.js create mode 100644 node_modules/discord-api-types/payloads/v8/template.js.map create mode 100644 node_modules/discord-api-types/payloads/v8/user.d.ts create mode 100644 node_modules/discord-api-types/payloads/v8/user.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v8/user.js create mode 100644 node_modules/discord-api-types/payloads/v8/user.js.map create mode 100644 node_modules/discord-api-types/payloads/v8/voice.d.ts create mode 100644 node_modules/discord-api-types/payloads/v8/voice.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v8/voice.js create mode 100644 node_modules/discord-api-types/payloads/v8/voice.js.map create mode 100644 node_modules/discord-api-types/payloads/v8/webhook.d.ts create mode 100644 node_modules/discord-api-types/payloads/v8/webhook.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v8/webhook.js create mode 100644 node_modules/discord-api-types/payloads/v8/webhook.js.map create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/attachment.d.ts create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/attachment.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/attachment.js create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/attachment.js.map create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/base.d.ts create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/base.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/base.js create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/base.js.map create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/boolean.d.ts create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/boolean.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/boolean.js create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/boolean.js.map create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/channel.d.ts create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/channel.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/channel.js create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/channel.js.map create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/integer.d.ts create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/integer.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/integer.js create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/integer.js.map create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/mentionable.d.ts create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/mentionable.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/mentionable.js create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/mentionable.js.map create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/number.d.ts create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/number.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/number.js create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/number.js.map create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/role.d.ts create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/role.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/role.js create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/role.js.map create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/shared.d.ts create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/shared.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/shared.js create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/shared.js.map create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/string.d.ts create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/string.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/string.js create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/string.js.map create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/subcommand.d.ts create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/subcommand.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/subcommand.js create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/subcommand.js.map create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/subcommandGroup.d.ts create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/subcommandGroup.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/subcommandGroup.js create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/subcommandGroup.js.map create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/user.d.ts create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/user.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/user.js create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/_chatInput/user.js.map create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/chatInput.d.ts create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/chatInput.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/chatInput.js create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/chatInput.js.map create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/contextMenu.d.ts create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/contextMenu.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/contextMenu.js create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/contextMenu.js.map create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/entryPoint.d.ts create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/entryPoint.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/entryPoint.js create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/entryPoint.js.map create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/internals.d.ts create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/internals.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/internals.js create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/internals.js.map create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/permissions.d.ts create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/permissions.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/permissions.js create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/_applicationCommands/permissions.js.map create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/applicationCommands.d.ts create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/applicationCommands.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/applicationCommands.js create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/applicationCommands.js.map create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/autocomplete.d.ts create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/autocomplete.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/autocomplete.js create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/autocomplete.js.map create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/base.d.ts create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/base.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/base.js create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/base.js.map create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/messageComponents.d.ts create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/messageComponents.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/messageComponents.js create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/messageComponents.js.map create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/modalSubmit.d.ts create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/modalSubmit.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/modalSubmit.js create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/modalSubmit.js.map create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/ping.d.ts create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/ping.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/ping.js create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/ping.js.map create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/responses.d.ts create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/responses.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/responses.js create mode 100644 node_modules/discord-api-types/payloads/v9/_interactions/responses.js.map create mode 100644 node_modules/discord-api-types/payloads/v9/application.d.ts create mode 100644 node_modules/discord-api-types/payloads/v9/application.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v9/application.js create mode 100644 node_modules/discord-api-types/payloads/v9/application.js.map create mode 100644 node_modules/discord-api-types/payloads/v9/auditLog.d.ts create mode 100644 node_modules/discord-api-types/payloads/v9/auditLog.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v9/auditLog.js create mode 100644 node_modules/discord-api-types/payloads/v9/auditLog.js.map create mode 100644 node_modules/discord-api-types/payloads/v9/autoModeration.d.ts create mode 100644 node_modules/discord-api-types/payloads/v9/autoModeration.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v9/autoModeration.js create mode 100644 node_modules/discord-api-types/payloads/v9/autoModeration.js.map create mode 100644 node_modules/discord-api-types/payloads/v9/channel.d.ts create mode 100644 node_modules/discord-api-types/payloads/v9/channel.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v9/channel.js create mode 100644 node_modules/discord-api-types/payloads/v9/channel.js.map create mode 100644 node_modules/discord-api-types/payloads/v9/emoji.d.ts create mode 100644 node_modules/discord-api-types/payloads/v9/emoji.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v9/emoji.js create mode 100644 node_modules/discord-api-types/payloads/v9/emoji.js.map create mode 100644 node_modules/discord-api-types/payloads/v9/gateway.d.ts create mode 100644 node_modules/discord-api-types/payloads/v9/gateway.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v9/gateway.js create mode 100644 node_modules/discord-api-types/payloads/v9/gateway.js.map create mode 100644 node_modules/discord-api-types/payloads/v9/guild.d.ts create mode 100644 node_modules/discord-api-types/payloads/v9/guild.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v9/guild.js create mode 100644 node_modules/discord-api-types/payloads/v9/guild.js.map create mode 100644 node_modules/discord-api-types/payloads/v9/guildScheduledEvent.d.ts create mode 100644 node_modules/discord-api-types/payloads/v9/guildScheduledEvent.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v9/guildScheduledEvent.js create mode 100644 node_modules/discord-api-types/payloads/v9/guildScheduledEvent.js.map create mode 100644 node_modules/discord-api-types/payloads/v9/index.d.ts create mode 100644 node_modules/discord-api-types/payloads/v9/index.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v9/index.js create mode 100644 node_modules/discord-api-types/payloads/v9/index.js.map create mode 100644 node_modules/discord-api-types/payloads/v9/index.mjs create mode 100644 node_modules/discord-api-types/payloads/v9/interactions.d.ts create mode 100644 node_modules/discord-api-types/payloads/v9/interactions.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v9/interactions.js create mode 100644 node_modules/discord-api-types/payloads/v9/interactions.js.map create mode 100644 node_modules/discord-api-types/payloads/v9/invite.d.ts create mode 100644 node_modules/discord-api-types/payloads/v9/invite.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v9/invite.js create mode 100644 node_modules/discord-api-types/payloads/v9/invite.js.map create mode 100644 node_modules/discord-api-types/payloads/v9/message.d.ts create mode 100644 node_modules/discord-api-types/payloads/v9/message.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v9/message.js create mode 100644 node_modules/discord-api-types/payloads/v9/message.js.map create mode 100644 node_modules/discord-api-types/payloads/v9/monetization.d.ts create mode 100644 node_modules/discord-api-types/payloads/v9/monetization.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v9/monetization.js create mode 100644 node_modules/discord-api-types/payloads/v9/monetization.js.map create mode 100644 node_modules/discord-api-types/payloads/v9/oauth2.d.ts create mode 100644 node_modules/discord-api-types/payloads/v9/oauth2.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v9/oauth2.js create mode 100644 node_modules/discord-api-types/payloads/v9/oauth2.js.map create mode 100644 node_modules/discord-api-types/payloads/v9/permissions.d.ts create mode 100644 node_modules/discord-api-types/payloads/v9/permissions.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v9/permissions.js create mode 100644 node_modules/discord-api-types/payloads/v9/permissions.js.map create mode 100644 node_modules/discord-api-types/payloads/v9/poll.d.ts create mode 100644 node_modules/discord-api-types/payloads/v9/poll.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v9/poll.js create mode 100644 node_modules/discord-api-types/payloads/v9/poll.js.map create mode 100644 node_modules/discord-api-types/payloads/v9/soundboard.d.ts create mode 100644 node_modules/discord-api-types/payloads/v9/soundboard.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v9/soundboard.js create mode 100644 node_modules/discord-api-types/payloads/v9/soundboard.js.map create mode 100644 node_modules/discord-api-types/payloads/v9/stageInstance.d.ts create mode 100644 node_modules/discord-api-types/payloads/v9/stageInstance.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v9/stageInstance.js create mode 100644 node_modules/discord-api-types/payloads/v9/stageInstance.js.map create mode 100644 node_modules/discord-api-types/payloads/v9/sticker.d.ts create mode 100644 node_modules/discord-api-types/payloads/v9/sticker.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v9/sticker.js create mode 100644 node_modules/discord-api-types/payloads/v9/sticker.js.map create mode 100644 node_modules/discord-api-types/payloads/v9/teams.d.ts create mode 100644 node_modules/discord-api-types/payloads/v9/teams.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v9/teams.js create mode 100644 node_modules/discord-api-types/payloads/v9/teams.js.map create mode 100644 node_modules/discord-api-types/payloads/v9/template.d.ts create mode 100644 node_modules/discord-api-types/payloads/v9/template.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v9/template.js create mode 100644 node_modules/discord-api-types/payloads/v9/template.js.map create mode 100644 node_modules/discord-api-types/payloads/v9/user.d.ts create mode 100644 node_modules/discord-api-types/payloads/v9/user.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v9/user.js create mode 100644 node_modules/discord-api-types/payloads/v9/user.js.map create mode 100644 node_modules/discord-api-types/payloads/v9/voice.d.ts create mode 100644 node_modules/discord-api-types/payloads/v9/voice.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v9/voice.js create mode 100644 node_modules/discord-api-types/payloads/v9/voice.js.map create mode 100644 node_modules/discord-api-types/payloads/v9/webhook.d.ts create mode 100644 node_modules/discord-api-types/payloads/v9/webhook.d.ts.map create mode 100644 node_modules/discord-api-types/payloads/v9/webhook.js create mode 100644 node_modules/discord-api-types/payloads/v9/webhook.js.map create mode 100644 node_modules/discord-api-types/rest/common.d.ts create mode 100644 node_modules/discord-api-types/rest/common.d.ts.map create mode 100644 node_modules/discord-api-types/rest/common.js create mode 100644 node_modules/discord-api-types/rest/common.js.map create mode 100644 node_modules/discord-api-types/rest/index.d.ts create mode 100644 node_modules/discord-api-types/rest/index.d.ts.map create mode 100644 node_modules/discord-api-types/rest/index.js create mode 100644 node_modules/discord-api-types/rest/index.js.map create mode 100644 node_modules/discord-api-types/rest/index.mjs create mode 100644 node_modules/discord-api-types/rest/v10/application.d.ts create mode 100644 node_modules/discord-api-types/rest/v10/application.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v10/application.js create mode 100644 node_modules/discord-api-types/rest/v10/application.js.map create mode 100644 node_modules/discord-api-types/rest/v10/auditLog.d.ts create mode 100644 node_modules/discord-api-types/rest/v10/auditLog.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v10/auditLog.js create mode 100644 node_modules/discord-api-types/rest/v10/auditLog.js.map create mode 100644 node_modules/discord-api-types/rest/v10/autoModeration.d.ts create mode 100644 node_modules/discord-api-types/rest/v10/autoModeration.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v10/autoModeration.js create mode 100644 node_modules/discord-api-types/rest/v10/autoModeration.js.map create mode 100644 node_modules/discord-api-types/rest/v10/channel.d.ts create mode 100644 node_modules/discord-api-types/rest/v10/channel.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v10/channel.js create mode 100644 node_modules/discord-api-types/rest/v10/channel.js.map create mode 100644 node_modules/discord-api-types/rest/v10/emoji.d.ts create mode 100644 node_modules/discord-api-types/rest/v10/emoji.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v10/emoji.js create mode 100644 node_modules/discord-api-types/rest/v10/emoji.js.map create mode 100644 node_modules/discord-api-types/rest/v10/gateway.d.ts create mode 100644 node_modules/discord-api-types/rest/v10/gateway.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v10/gateway.js create mode 100644 node_modules/discord-api-types/rest/v10/gateway.js.map create mode 100644 node_modules/discord-api-types/rest/v10/guild.d.ts create mode 100644 node_modules/discord-api-types/rest/v10/guild.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v10/guild.js create mode 100644 node_modules/discord-api-types/rest/v10/guild.js.map create mode 100644 node_modules/discord-api-types/rest/v10/guildScheduledEvent.d.ts create mode 100644 node_modules/discord-api-types/rest/v10/guildScheduledEvent.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v10/guildScheduledEvent.js create mode 100644 node_modules/discord-api-types/rest/v10/guildScheduledEvent.js.map create mode 100644 node_modules/discord-api-types/rest/v10/index.d.ts create mode 100644 node_modules/discord-api-types/rest/v10/index.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v10/index.js create mode 100644 node_modules/discord-api-types/rest/v10/index.js.map create mode 100644 node_modules/discord-api-types/rest/v10/index.mjs create mode 100644 node_modules/discord-api-types/rest/v10/interactions.d.ts create mode 100644 node_modules/discord-api-types/rest/v10/interactions.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v10/interactions.js create mode 100644 node_modules/discord-api-types/rest/v10/interactions.js.map create mode 100644 node_modules/discord-api-types/rest/v10/invite.d.ts create mode 100644 node_modules/discord-api-types/rest/v10/invite.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v10/invite.js create mode 100644 node_modules/discord-api-types/rest/v10/invite.js.map create mode 100644 node_modules/discord-api-types/rest/v10/monetization.d.ts create mode 100644 node_modules/discord-api-types/rest/v10/monetization.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v10/monetization.js create mode 100644 node_modules/discord-api-types/rest/v10/monetization.js.map create mode 100644 node_modules/discord-api-types/rest/v10/oauth2.d.ts create mode 100644 node_modules/discord-api-types/rest/v10/oauth2.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v10/oauth2.js create mode 100644 node_modules/discord-api-types/rest/v10/oauth2.js.map create mode 100644 node_modules/discord-api-types/rest/v10/poll.d.ts create mode 100644 node_modules/discord-api-types/rest/v10/poll.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v10/poll.js create mode 100644 node_modules/discord-api-types/rest/v10/poll.js.map create mode 100644 node_modules/discord-api-types/rest/v10/soundboard.d.ts create mode 100644 node_modules/discord-api-types/rest/v10/soundboard.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v10/soundboard.js create mode 100644 node_modules/discord-api-types/rest/v10/soundboard.js.map create mode 100644 node_modules/discord-api-types/rest/v10/stageInstance.d.ts create mode 100644 node_modules/discord-api-types/rest/v10/stageInstance.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v10/stageInstance.js create mode 100644 node_modules/discord-api-types/rest/v10/stageInstance.js.map create mode 100644 node_modules/discord-api-types/rest/v10/sticker.d.ts create mode 100644 node_modules/discord-api-types/rest/v10/sticker.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v10/sticker.js create mode 100644 node_modules/discord-api-types/rest/v10/sticker.js.map create mode 100644 node_modules/discord-api-types/rest/v10/template.d.ts create mode 100644 node_modules/discord-api-types/rest/v10/template.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v10/template.js create mode 100644 node_modules/discord-api-types/rest/v10/template.js.map create mode 100644 node_modules/discord-api-types/rest/v10/user.d.ts create mode 100644 node_modules/discord-api-types/rest/v10/user.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v10/user.js create mode 100644 node_modules/discord-api-types/rest/v10/user.js.map create mode 100644 node_modules/discord-api-types/rest/v10/voice.d.ts create mode 100644 node_modules/discord-api-types/rest/v10/voice.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v10/voice.js create mode 100644 node_modules/discord-api-types/rest/v10/voice.js.map create mode 100644 node_modules/discord-api-types/rest/v10/webhook.d.ts create mode 100644 node_modules/discord-api-types/rest/v10/webhook.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v10/webhook.js create mode 100644 node_modules/discord-api-types/rest/v10/webhook.js.map create mode 100644 node_modules/discord-api-types/rest/v6/auditLog.d.ts create mode 100644 node_modules/discord-api-types/rest/v6/auditLog.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v6/auditLog.js create mode 100644 node_modules/discord-api-types/rest/v6/auditLog.js.map create mode 100644 node_modules/discord-api-types/rest/v6/channel.d.ts create mode 100644 node_modules/discord-api-types/rest/v6/channel.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v6/channel.js create mode 100644 node_modules/discord-api-types/rest/v6/channel.js.map create mode 100644 node_modules/discord-api-types/rest/v6/emoji.d.ts create mode 100644 node_modules/discord-api-types/rest/v6/emoji.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v6/emoji.js create mode 100644 node_modules/discord-api-types/rest/v6/emoji.js.map create mode 100644 node_modules/discord-api-types/rest/v6/gateway.d.ts create mode 100644 node_modules/discord-api-types/rest/v6/gateway.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v6/gateway.js create mode 100644 node_modules/discord-api-types/rest/v6/gateway.js.map create mode 100644 node_modules/discord-api-types/rest/v6/guild.d.ts create mode 100644 node_modules/discord-api-types/rest/v6/guild.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v6/guild.js create mode 100644 node_modules/discord-api-types/rest/v6/guild.js.map create mode 100644 node_modules/discord-api-types/rest/v6/index.d.ts create mode 100644 node_modules/discord-api-types/rest/v6/index.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v6/index.js create mode 100644 node_modules/discord-api-types/rest/v6/index.js.map create mode 100644 node_modules/discord-api-types/rest/v6/index.mjs create mode 100644 node_modules/discord-api-types/rest/v6/invite.d.ts create mode 100644 node_modules/discord-api-types/rest/v6/invite.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v6/invite.js create mode 100644 node_modules/discord-api-types/rest/v6/invite.js.map create mode 100644 node_modules/discord-api-types/rest/v6/oauth2.d.ts create mode 100644 node_modules/discord-api-types/rest/v6/oauth2.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v6/oauth2.js create mode 100644 node_modules/discord-api-types/rest/v6/oauth2.js.map create mode 100644 node_modules/discord-api-types/rest/v6/user.d.ts create mode 100644 node_modules/discord-api-types/rest/v6/user.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v6/user.js create mode 100644 node_modules/discord-api-types/rest/v6/user.js.map create mode 100644 node_modules/discord-api-types/rest/v6/voice.d.ts create mode 100644 node_modules/discord-api-types/rest/v6/voice.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v6/voice.js create mode 100644 node_modules/discord-api-types/rest/v6/voice.js.map create mode 100644 node_modules/discord-api-types/rest/v6/webhook.d.ts create mode 100644 node_modules/discord-api-types/rest/v6/webhook.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v6/webhook.js create mode 100644 node_modules/discord-api-types/rest/v6/webhook.js.map create mode 100644 node_modules/discord-api-types/rest/v8/auditLog.d.ts create mode 100644 node_modules/discord-api-types/rest/v8/auditLog.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v8/auditLog.js create mode 100644 node_modules/discord-api-types/rest/v8/auditLog.js.map create mode 100644 node_modules/discord-api-types/rest/v8/channel.d.ts create mode 100644 node_modules/discord-api-types/rest/v8/channel.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v8/channel.js create mode 100644 node_modules/discord-api-types/rest/v8/channel.js.map create mode 100644 node_modules/discord-api-types/rest/v8/emoji.d.ts create mode 100644 node_modules/discord-api-types/rest/v8/emoji.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v8/emoji.js create mode 100644 node_modules/discord-api-types/rest/v8/emoji.js.map create mode 100644 node_modules/discord-api-types/rest/v8/gateway.d.ts create mode 100644 node_modules/discord-api-types/rest/v8/gateway.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v8/gateway.js create mode 100644 node_modules/discord-api-types/rest/v8/gateway.js.map create mode 100644 node_modules/discord-api-types/rest/v8/guild.d.ts create mode 100644 node_modules/discord-api-types/rest/v8/guild.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v8/guild.js create mode 100644 node_modules/discord-api-types/rest/v8/guild.js.map create mode 100644 node_modules/discord-api-types/rest/v8/guildScheduledEvent.d.ts create mode 100644 node_modules/discord-api-types/rest/v8/guildScheduledEvent.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v8/guildScheduledEvent.js create mode 100644 node_modules/discord-api-types/rest/v8/guildScheduledEvent.js.map create mode 100644 node_modules/discord-api-types/rest/v8/index.d.ts create mode 100644 node_modules/discord-api-types/rest/v8/index.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v8/index.js create mode 100644 node_modules/discord-api-types/rest/v8/index.js.map create mode 100644 node_modules/discord-api-types/rest/v8/index.mjs create mode 100644 node_modules/discord-api-types/rest/v8/interactions.d.ts create mode 100644 node_modules/discord-api-types/rest/v8/interactions.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v8/interactions.js create mode 100644 node_modules/discord-api-types/rest/v8/interactions.js.map create mode 100644 node_modules/discord-api-types/rest/v8/invite.d.ts create mode 100644 node_modules/discord-api-types/rest/v8/invite.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v8/invite.js create mode 100644 node_modules/discord-api-types/rest/v8/invite.js.map create mode 100644 node_modules/discord-api-types/rest/v8/oauth2.d.ts create mode 100644 node_modules/discord-api-types/rest/v8/oauth2.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v8/oauth2.js create mode 100644 node_modules/discord-api-types/rest/v8/oauth2.js.map create mode 100644 node_modules/discord-api-types/rest/v8/stageInstance.d.ts create mode 100644 node_modules/discord-api-types/rest/v8/stageInstance.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v8/stageInstance.js create mode 100644 node_modules/discord-api-types/rest/v8/stageInstance.js.map create mode 100644 node_modules/discord-api-types/rest/v8/sticker.d.ts create mode 100644 node_modules/discord-api-types/rest/v8/sticker.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v8/sticker.js create mode 100644 node_modules/discord-api-types/rest/v8/sticker.js.map create mode 100644 node_modules/discord-api-types/rest/v8/template.d.ts create mode 100644 node_modules/discord-api-types/rest/v8/template.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v8/template.js create mode 100644 node_modules/discord-api-types/rest/v8/template.js.map create mode 100644 node_modules/discord-api-types/rest/v8/user.d.ts create mode 100644 node_modules/discord-api-types/rest/v8/user.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v8/user.js create mode 100644 node_modules/discord-api-types/rest/v8/user.js.map create mode 100644 node_modules/discord-api-types/rest/v8/voice.d.ts create mode 100644 node_modules/discord-api-types/rest/v8/voice.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v8/voice.js create mode 100644 node_modules/discord-api-types/rest/v8/voice.js.map create mode 100644 node_modules/discord-api-types/rest/v8/webhook.d.ts create mode 100644 node_modules/discord-api-types/rest/v8/webhook.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v8/webhook.js create mode 100644 node_modules/discord-api-types/rest/v8/webhook.js.map create mode 100644 node_modules/discord-api-types/rest/v9/application.d.ts create mode 100644 node_modules/discord-api-types/rest/v9/application.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v9/application.js create mode 100644 node_modules/discord-api-types/rest/v9/application.js.map create mode 100644 node_modules/discord-api-types/rest/v9/auditLog.d.ts create mode 100644 node_modules/discord-api-types/rest/v9/auditLog.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v9/auditLog.js create mode 100644 node_modules/discord-api-types/rest/v9/auditLog.js.map create mode 100644 node_modules/discord-api-types/rest/v9/autoModeration.d.ts create mode 100644 node_modules/discord-api-types/rest/v9/autoModeration.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v9/autoModeration.js create mode 100644 node_modules/discord-api-types/rest/v9/autoModeration.js.map create mode 100644 node_modules/discord-api-types/rest/v9/channel.d.ts create mode 100644 node_modules/discord-api-types/rest/v9/channel.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v9/channel.js create mode 100644 node_modules/discord-api-types/rest/v9/channel.js.map create mode 100644 node_modules/discord-api-types/rest/v9/emoji.d.ts create mode 100644 node_modules/discord-api-types/rest/v9/emoji.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v9/emoji.js create mode 100644 node_modules/discord-api-types/rest/v9/emoji.js.map create mode 100644 node_modules/discord-api-types/rest/v9/gateway.d.ts create mode 100644 node_modules/discord-api-types/rest/v9/gateway.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v9/gateway.js create mode 100644 node_modules/discord-api-types/rest/v9/gateway.js.map create mode 100644 node_modules/discord-api-types/rest/v9/guild.d.ts create mode 100644 node_modules/discord-api-types/rest/v9/guild.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v9/guild.js create mode 100644 node_modules/discord-api-types/rest/v9/guild.js.map create mode 100644 node_modules/discord-api-types/rest/v9/guildScheduledEvent.d.ts create mode 100644 node_modules/discord-api-types/rest/v9/guildScheduledEvent.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v9/guildScheduledEvent.js create mode 100644 node_modules/discord-api-types/rest/v9/guildScheduledEvent.js.map create mode 100644 node_modules/discord-api-types/rest/v9/index.d.ts create mode 100644 node_modules/discord-api-types/rest/v9/index.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v9/index.js create mode 100644 node_modules/discord-api-types/rest/v9/index.js.map create mode 100644 node_modules/discord-api-types/rest/v9/index.mjs create mode 100644 node_modules/discord-api-types/rest/v9/interactions.d.ts create mode 100644 node_modules/discord-api-types/rest/v9/interactions.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v9/interactions.js create mode 100644 node_modules/discord-api-types/rest/v9/interactions.js.map create mode 100644 node_modules/discord-api-types/rest/v9/invite.d.ts create mode 100644 node_modules/discord-api-types/rest/v9/invite.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v9/invite.js create mode 100644 node_modules/discord-api-types/rest/v9/invite.js.map create mode 100644 node_modules/discord-api-types/rest/v9/monetization.d.ts create mode 100644 node_modules/discord-api-types/rest/v9/monetization.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v9/monetization.js create mode 100644 node_modules/discord-api-types/rest/v9/monetization.js.map create mode 100644 node_modules/discord-api-types/rest/v9/oauth2.d.ts create mode 100644 node_modules/discord-api-types/rest/v9/oauth2.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v9/oauth2.js create mode 100644 node_modules/discord-api-types/rest/v9/oauth2.js.map create mode 100644 node_modules/discord-api-types/rest/v9/poll.d.ts create mode 100644 node_modules/discord-api-types/rest/v9/poll.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v9/poll.js create mode 100644 node_modules/discord-api-types/rest/v9/poll.js.map create mode 100644 node_modules/discord-api-types/rest/v9/soundboard.d.ts create mode 100644 node_modules/discord-api-types/rest/v9/soundboard.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v9/soundboard.js create mode 100644 node_modules/discord-api-types/rest/v9/soundboard.js.map create mode 100644 node_modules/discord-api-types/rest/v9/stageInstance.d.ts create mode 100644 node_modules/discord-api-types/rest/v9/stageInstance.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v9/stageInstance.js create mode 100644 node_modules/discord-api-types/rest/v9/stageInstance.js.map create mode 100644 node_modules/discord-api-types/rest/v9/sticker.d.ts create mode 100644 node_modules/discord-api-types/rest/v9/sticker.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v9/sticker.js create mode 100644 node_modules/discord-api-types/rest/v9/sticker.js.map create mode 100644 node_modules/discord-api-types/rest/v9/template.d.ts create mode 100644 node_modules/discord-api-types/rest/v9/template.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v9/template.js create mode 100644 node_modules/discord-api-types/rest/v9/template.js.map create mode 100644 node_modules/discord-api-types/rest/v9/user.d.ts create mode 100644 node_modules/discord-api-types/rest/v9/user.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v9/user.js create mode 100644 node_modules/discord-api-types/rest/v9/user.js.map create mode 100644 node_modules/discord-api-types/rest/v9/voice.d.ts create mode 100644 node_modules/discord-api-types/rest/v9/voice.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v9/voice.js create mode 100644 node_modules/discord-api-types/rest/v9/voice.js.map create mode 100644 node_modules/discord-api-types/rest/v9/webhook.d.ts create mode 100644 node_modules/discord-api-types/rest/v9/webhook.d.ts.map create mode 100644 node_modules/discord-api-types/rest/v9/webhook.js create mode 100644 node_modules/discord-api-types/rest/v9/webhook.js.map create mode 100644 node_modules/discord-api-types/rpc/common.d.ts create mode 100644 node_modules/discord-api-types/rpc/common.d.ts.map create mode 100644 node_modules/discord-api-types/rpc/common.js create mode 100644 node_modules/discord-api-types/rpc/common.js.map create mode 100644 node_modules/discord-api-types/rpc/index.d.ts create mode 100644 node_modules/discord-api-types/rpc/index.d.ts.map create mode 100644 node_modules/discord-api-types/rpc/index.js create mode 100644 node_modules/discord-api-types/rpc/index.js.map create mode 100644 node_modules/discord-api-types/rpc/index.mjs create mode 100644 node_modules/discord-api-types/rpc/v10.d.ts create mode 100644 node_modules/discord-api-types/rpc/v10.d.ts.map create mode 100644 node_modules/discord-api-types/rpc/v10.js create mode 100644 node_modules/discord-api-types/rpc/v10.js.map create mode 100644 node_modules/discord-api-types/rpc/v10.mjs create mode 100644 node_modules/discord-api-types/rpc/v8.d.ts create mode 100644 node_modules/discord-api-types/rpc/v8.d.ts.map create mode 100644 node_modules/discord-api-types/rpc/v8.js create mode 100644 node_modules/discord-api-types/rpc/v8.js.map create mode 100644 node_modules/discord-api-types/rpc/v8.mjs create mode 100644 node_modules/discord-api-types/rpc/v9.d.ts create mode 100644 node_modules/discord-api-types/rpc/v9.d.ts.map create mode 100644 node_modules/discord-api-types/rpc/v9.js create mode 100644 node_modules/discord-api-types/rpc/v9.js.map create mode 100644 node_modules/discord-api-types/rpc/v9.mjs create mode 100644 node_modules/discord-api-types/scripts/versions.mjs create mode 100644 node_modules/discord-api-types/utils/index.d.ts create mode 100644 node_modules/discord-api-types/utils/index.d.ts.map create mode 100644 node_modules/discord-api-types/utils/index.js create mode 100644 node_modules/discord-api-types/utils/index.js.map create mode 100644 node_modules/discord-api-types/utils/index.mjs create mode 100644 node_modules/discord-api-types/utils/internals.d.ts create mode 100644 node_modules/discord-api-types/utils/internals.d.ts.map create mode 100644 node_modules/discord-api-types/utils/internals.js create mode 100644 node_modules/discord-api-types/utils/internals.js.map create mode 100644 node_modules/discord-api-types/utils/v10.d.ts create mode 100644 node_modules/discord-api-types/utils/v10.d.ts.map create mode 100644 node_modules/discord-api-types/utils/v10.js create mode 100644 node_modules/discord-api-types/utils/v10.js.map create mode 100644 node_modules/discord-api-types/utils/v10.mjs create mode 100644 node_modules/discord-api-types/utils/v8.d.ts create mode 100644 node_modules/discord-api-types/utils/v8.d.ts.map create mode 100644 node_modules/discord-api-types/utils/v8.js create mode 100644 node_modules/discord-api-types/utils/v8.js.map create mode 100644 node_modules/discord-api-types/utils/v8.mjs create mode 100644 node_modules/discord-api-types/utils/v9.d.ts create mode 100644 node_modules/discord-api-types/utils/v9.d.ts.map create mode 100644 node_modules/discord-api-types/utils/v9.js create mode 100644 node_modules/discord-api-types/utils/v9.js.map create mode 100644 node_modules/discord-api-types/utils/v9.mjs create mode 100644 node_modules/discord-api-types/v10.d.ts create mode 100644 node_modules/discord-api-types/v10.d.ts.map create mode 100644 node_modules/discord-api-types/v10.js create mode 100644 node_modules/discord-api-types/v10.js.map create mode 100644 node_modules/discord-api-types/v10.mjs create mode 100644 node_modules/discord-api-types/v6.d.ts create mode 100644 node_modules/discord-api-types/v6.d.ts.map create mode 100644 node_modules/discord-api-types/v6.js create mode 100644 node_modules/discord-api-types/v6.js.map create mode 100644 node_modules/discord-api-types/v6.mjs create mode 100644 node_modules/discord-api-types/v8.d.ts create mode 100644 node_modules/discord-api-types/v8.d.ts.map create mode 100644 node_modules/discord-api-types/v8.js create mode 100644 node_modules/discord-api-types/v8.js.map create mode 100644 node_modules/discord-api-types/v8.mjs create mode 100644 node_modules/discord-api-types/v9.d.ts create mode 100644 node_modules/discord-api-types/v9.d.ts.map create mode 100644 node_modules/discord-api-types/v9.js create mode 100644 node_modules/discord-api-types/v9.js.map create mode 100644 node_modules/discord-api-types/v9.mjs create mode 100644 node_modules/discord-api-types/voice/index.d.ts create mode 100644 node_modules/discord-api-types/voice/index.d.ts.map create mode 100644 node_modules/discord-api-types/voice/index.js create mode 100644 node_modules/discord-api-types/voice/index.js.map create mode 100644 node_modules/discord-api-types/voice/index.mjs create mode 100644 node_modules/discord-api-types/voice/v4.d.ts create mode 100644 node_modules/discord-api-types/voice/v4.d.ts.map create mode 100644 node_modules/discord-api-types/voice/v4.js create mode 100644 node_modules/discord-api-types/voice/v4.js.map create mode 100644 node_modules/discord-api-types/voice/v4.mjs create mode 100644 node_modules/discord-api-types/voice/v8.d.ts create mode 100644 node_modules/discord-api-types/voice/v8.d.ts.map create mode 100644 node_modules/discord-api-types/voice/v8.js create mode 100644 node_modules/discord-api-types/voice/v8.js.map create mode 100644 node_modules/discord-api-types/voice/v8.mjs create mode 100644 node_modules/discord.js/LICENSE create mode 100644 node_modules/discord.js/README.md create mode 100644 node_modules/discord.js/package.json create mode 100644 node_modules/discord.js/src/client/BaseClient.js create mode 100644 node_modules/discord.js/src/client/Client.js create mode 100644 node_modules/discord.js/src/client/WebhookClient.js create mode 100644 node_modules/discord.js/src/client/actions/Action.js create mode 100644 node_modules/discord.js/src/client/actions/ActionsManager.js create mode 100644 node_modules/discord.js/src/client/actions/ApplicationCommandPermissionsUpdate.js create mode 100644 node_modules/discord.js/src/client/actions/AutoModerationActionExecution.js create mode 100644 node_modules/discord.js/src/client/actions/AutoModerationRuleCreate.js create mode 100644 node_modules/discord.js/src/client/actions/AutoModerationRuleDelete.js create mode 100644 node_modules/discord.js/src/client/actions/AutoModerationRuleUpdate.js create mode 100644 node_modules/discord.js/src/client/actions/ChannelCreate.js create mode 100644 node_modules/discord.js/src/client/actions/ChannelDelete.js create mode 100644 node_modules/discord.js/src/client/actions/ChannelUpdate.js create mode 100644 node_modules/discord.js/src/client/actions/EntitlementCreate.js create mode 100644 node_modules/discord.js/src/client/actions/EntitlementDelete.js create mode 100644 node_modules/discord.js/src/client/actions/EntitlementUpdate.js create mode 100644 node_modules/discord.js/src/client/actions/GuildAuditLogEntryCreate.js create mode 100644 node_modules/discord.js/src/client/actions/GuildBanAdd.js create mode 100644 node_modules/discord.js/src/client/actions/GuildBanRemove.js create mode 100644 node_modules/discord.js/src/client/actions/GuildChannelsPositionUpdate.js create mode 100644 node_modules/discord.js/src/client/actions/GuildDelete.js create mode 100644 node_modules/discord.js/src/client/actions/GuildEmojiCreate.js create mode 100644 node_modules/discord.js/src/client/actions/GuildEmojiDelete.js create mode 100644 node_modules/discord.js/src/client/actions/GuildEmojiUpdate.js create mode 100644 node_modules/discord.js/src/client/actions/GuildEmojisUpdate.js create mode 100644 node_modules/discord.js/src/client/actions/GuildIntegrationsUpdate.js create mode 100644 node_modules/discord.js/src/client/actions/GuildMemberRemove.js create mode 100644 node_modules/discord.js/src/client/actions/GuildMemberUpdate.js create mode 100644 node_modules/discord.js/src/client/actions/GuildRoleCreate.js create mode 100644 node_modules/discord.js/src/client/actions/GuildRoleDelete.js create mode 100644 node_modules/discord.js/src/client/actions/GuildRoleUpdate.js create mode 100644 node_modules/discord.js/src/client/actions/GuildRolesPositionUpdate.js create mode 100644 node_modules/discord.js/src/client/actions/GuildScheduledEventCreate.js create mode 100644 node_modules/discord.js/src/client/actions/GuildScheduledEventDelete.js create mode 100644 node_modules/discord.js/src/client/actions/GuildScheduledEventUpdate.js create mode 100644 node_modules/discord.js/src/client/actions/GuildScheduledEventUserAdd.js create mode 100644 node_modules/discord.js/src/client/actions/GuildScheduledEventUserRemove.js create mode 100644 node_modules/discord.js/src/client/actions/GuildSoundboardSoundDelete.js create mode 100644 node_modules/discord.js/src/client/actions/GuildStickerCreate.js create mode 100644 node_modules/discord.js/src/client/actions/GuildStickerDelete.js create mode 100644 node_modules/discord.js/src/client/actions/GuildStickerUpdate.js create mode 100644 node_modules/discord.js/src/client/actions/GuildStickersUpdate.js create mode 100644 node_modules/discord.js/src/client/actions/GuildUpdate.js create mode 100644 node_modules/discord.js/src/client/actions/InteractionCreate.js create mode 100644 node_modules/discord.js/src/client/actions/InviteCreate.js create mode 100644 node_modules/discord.js/src/client/actions/InviteDelete.js create mode 100644 node_modules/discord.js/src/client/actions/MessageCreate.js create mode 100644 node_modules/discord.js/src/client/actions/MessageDelete.js create mode 100644 node_modules/discord.js/src/client/actions/MessageDeleteBulk.js create mode 100644 node_modules/discord.js/src/client/actions/MessagePollVoteAdd.js create mode 100644 node_modules/discord.js/src/client/actions/MessagePollVoteRemove.js create mode 100644 node_modules/discord.js/src/client/actions/MessageReactionAdd.js create mode 100644 node_modules/discord.js/src/client/actions/MessageReactionRemove.js create mode 100644 node_modules/discord.js/src/client/actions/MessageReactionRemoveAll.js create mode 100644 node_modules/discord.js/src/client/actions/MessageReactionRemoveEmoji.js create mode 100644 node_modules/discord.js/src/client/actions/MessageUpdate.js create mode 100644 node_modules/discord.js/src/client/actions/PresenceUpdate.js create mode 100644 node_modules/discord.js/src/client/actions/StageInstanceCreate.js create mode 100644 node_modules/discord.js/src/client/actions/StageInstanceDelete.js create mode 100644 node_modules/discord.js/src/client/actions/StageInstanceUpdate.js create mode 100644 node_modules/discord.js/src/client/actions/ThreadCreate.js create mode 100644 node_modules/discord.js/src/client/actions/ThreadDelete.js create mode 100644 node_modules/discord.js/src/client/actions/ThreadListSync.js create mode 100644 node_modules/discord.js/src/client/actions/ThreadMemberUpdate.js create mode 100644 node_modules/discord.js/src/client/actions/ThreadMembersUpdate.js create mode 100644 node_modules/discord.js/src/client/actions/TypingStart.js create mode 100644 node_modules/discord.js/src/client/actions/UserUpdate.js create mode 100644 node_modules/discord.js/src/client/actions/VoiceStateUpdate.js create mode 100644 node_modules/discord.js/src/client/actions/WebhooksUpdate.js create mode 100644 node_modules/discord.js/src/client/voice/ClientVoiceManager.js create mode 100644 node_modules/discord.js/src/client/websocket/WebSocketManager.js create mode 100644 node_modules/discord.js/src/client/websocket/WebSocketShard.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/APPLICATION_COMMAND_PERMISSIONS_UPDATE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/AUTO_MODERATION_ACTION_EXECUTION.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/AUTO_MODERATION_RULE_CREATE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/AUTO_MODERATION_RULE_DELETE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/AUTO_MODERATION_RULE_UPDATE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/CHANNEL_CREATE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/CHANNEL_DELETE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/CHANNEL_PINS_UPDATE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/CHANNEL_UPDATE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/ENTITLEMENT_CREATE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/ENTITLEMENT_DELETE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/ENTITLEMENT_UPDATE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/GUILD_AUDIT_LOG_ENTRY_CREATE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/GUILD_BAN_ADD.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/GUILD_BAN_REMOVE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/GUILD_CREATE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/GUILD_DELETE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/GUILD_EMOJIS_UPDATE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/GUILD_INTEGRATIONS_UPDATE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/GUILD_MEMBERS_CHUNK.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/GUILD_MEMBER_ADD.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/GUILD_MEMBER_REMOVE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/GUILD_MEMBER_UPDATE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/GUILD_ROLE_CREATE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/GUILD_ROLE_DELETE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/GUILD_ROLE_UPDATE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_CREATE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_DELETE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_UPDATE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_USER_ADD.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_USER_REMOVE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/GUILD_SOUNDBOARD_SOUNDS_UPDATE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/GUILD_SOUNDBOARD_SOUND_CREATE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/GUILD_SOUNDBOARD_SOUND_DELETE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/GUILD_SOUNDBOARD_SOUND_UPDATE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/GUILD_STICKERS_UPDATE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/GUILD_UPDATE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/INTERACTION_CREATE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/INVITE_CREATE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/INVITE_DELETE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/MESSAGE_CREATE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/MESSAGE_DELETE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/MESSAGE_DELETE_BULK.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/MESSAGE_POLL_VOTE_ADD.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/MESSAGE_POLL_VOTE_REMOVE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/MESSAGE_REACTION_ADD.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/MESSAGE_REACTION_REMOVE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/MESSAGE_REACTION_REMOVE_ALL.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/MESSAGE_REACTION_REMOVE_EMOJI.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/MESSAGE_UPDATE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/PRESENCE_UPDATE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/RATE_LIMITED.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/READY.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/RESUMED.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/SOUNDBOARD_SOUNDS.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/STAGE_INSTANCE_CREATE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/STAGE_INSTANCE_DELETE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/STAGE_INSTANCE_UPDATE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/SUBSCRIPTION_CREATE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/SUBSCRIPTION_DELETE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/SUBSCRIPTION_UPDATE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/THREAD_CREATE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/THREAD_DELETE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/THREAD_LIST_SYNC.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/THREAD_MEMBERS_UPDATE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/THREAD_MEMBER_UPDATE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/THREAD_UPDATE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/TYPING_START.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/USER_UPDATE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/VOICE_CHANNEL_EFFECT_SEND.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/VOICE_SERVER_UPDATE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/VOICE_STATE_UPDATE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/WEBHOOKS_UPDATE.js create mode 100644 node_modules/discord.js/src/client/websocket/handlers/index.js create mode 100644 node_modules/discord.js/src/errors/DJSError.js create mode 100644 node_modules/discord.js/src/errors/ErrorCodes.js create mode 100644 node_modules/discord.js/src/errors/Messages.js create mode 100644 node_modules/discord.js/src/errors/index.js create mode 100644 node_modules/discord.js/src/index.js create mode 100644 node_modules/discord.js/src/managers/ApplicationCommandManager.js create mode 100644 node_modules/discord.js/src/managers/ApplicationCommandPermissionsManager.js create mode 100644 node_modules/discord.js/src/managers/ApplicationEmojiManager.js create mode 100644 node_modules/discord.js/src/managers/AutoModerationRuleManager.js create mode 100644 node_modules/discord.js/src/managers/BaseGuildEmojiManager.js create mode 100644 node_modules/discord.js/src/managers/BaseManager.js create mode 100644 node_modules/discord.js/src/managers/CachedManager.js create mode 100644 node_modules/discord.js/src/managers/CategoryChannelChildManager.js create mode 100644 node_modules/discord.js/src/managers/ChannelManager.js create mode 100644 node_modules/discord.js/src/managers/DMMessageManager.js create mode 100644 node_modules/discord.js/src/managers/DataManager.js create mode 100644 node_modules/discord.js/src/managers/EntitlementManager.js create mode 100644 node_modules/discord.js/src/managers/GuildApplicationCommandManager.js create mode 100644 node_modules/discord.js/src/managers/GuildBanManager.js create mode 100644 node_modules/discord.js/src/managers/GuildChannelManager.js create mode 100644 node_modules/discord.js/src/managers/GuildEmojiManager.js create mode 100644 node_modules/discord.js/src/managers/GuildEmojiRoleManager.js create mode 100644 node_modules/discord.js/src/managers/GuildForumThreadManager.js create mode 100644 node_modules/discord.js/src/managers/GuildInviteManager.js create mode 100644 node_modules/discord.js/src/managers/GuildManager.js create mode 100644 node_modules/discord.js/src/managers/GuildMemberManager.js create mode 100644 node_modules/discord.js/src/managers/GuildMemberRoleManager.js create mode 100644 node_modules/discord.js/src/managers/GuildMessageManager.js create mode 100644 node_modules/discord.js/src/managers/GuildScheduledEventManager.js create mode 100644 node_modules/discord.js/src/managers/GuildSoundboardSoundManager.js create mode 100644 node_modules/discord.js/src/managers/GuildStickerManager.js create mode 100644 node_modules/discord.js/src/managers/GuildTextThreadManager.js create mode 100644 node_modules/discord.js/src/managers/MessageManager.js create mode 100644 node_modules/discord.js/src/managers/PartialGroupDMMessageManager.js create mode 100644 node_modules/discord.js/src/managers/PermissionOverwriteManager.js create mode 100644 node_modules/discord.js/src/managers/PollAnswerVoterManager.js create mode 100644 node_modules/discord.js/src/managers/PresenceManager.js create mode 100644 node_modules/discord.js/src/managers/ReactionManager.js create mode 100644 node_modules/discord.js/src/managers/ReactionUserManager.js create mode 100644 node_modules/discord.js/src/managers/RoleManager.js create mode 100644 node_modules/discord.js/src/managers/StageInstanceManager.js create mode 100644 node_modules/discord.js/src/managers/SubscriptionManager.js create mode 100644 node_modules/discord.js/src/managers/ThreadManager.js create mode 100644 node_modules/discord.js/src/managers/ThreadMemberManager.js create mode 100644 node_modules/discord.js/src/managers/UserManager.js create mode 100644 node_modules/discord.js/src/managers/VoiceStateManager.js create mode 100644 node_modules/discord.js/src/sharding/Shard.js create mode 100644 node_modules/discord.js/src/sharding/ShardClientUtil.js create mode 100644 node_modules/discord.js/src/sharding/ShardingManager.js create mode 100644 node_modules/discord.js/src/structures/ActionRow.js create mode 100644 node_modules/discord.js/src/structures/ActionRowBuilder.js create mode 100644 node_modules/discord.js/src/structures/AnonymousGuild.js create mode 100644 node_modules/discord.js/src/structures/ApplicationCommand.js create mode 100644 node_modules/discord.js/src/structures/ApplicationEmoji.js create mode 100644 node_modules/discord.js/src/structures/ApplicationRoleConnectionMetadata.js create mode 100644 node_modules/discord.js/src/structures/Attachment.js create mode 100644 node_modules/discord.js/src/structures/AttachmentBuilder.js create mode 100644 node_modules/discord.js/src/structures/AutoModerationActionExecution.js create mode 100644 node_modules/discord.js/src/structures/AutoModerationRule.js create mode 100644 node_modules/discord.js/src/structures/AutocompleteInteraction.js create mode 100644 node_modules/discord.js/src/structures/Base.js create mode 100644 node_modules/discord.js/src/structures/BaseChannel.js create mode 100644 node_modules/discord.js/src/structures/BaseGuild.js create mode 100644 node_modules/discord.js/src/structures/BaseGuildEmoji.js create mode 100644 node_modules/discord.js/src/structures/BaseGuildTextChannel.js create mode 100644 node_modules/discord.js/src/structures/BaseGuildVoiceChannel.js create mode 100644 node_modules/discord.js/src/structures/BaseInteraction.js create mode 100644 node_modules/discord.js/src/structures/BaseSelectMenuComponent.js create mode 100644 node_modules/discord.js/src/structures/ButtonBuilder.js create mode 100644 node_modules/discord.js/src/structures/ButtonComponent.js create mode 100644 node_modules/discord.js/src/structures/ButtonInteraction.js create mode 100644 node_modules/discord.js/src/structures/CategoryChannel.js create mode 100644 node_modules/discord.js/src/structures/ChannelSelectMenuBuilder.js create mode 100644 node_modules/discord.js/src/structures/ChannelSelectMenuComponent.js create mode 100644 node_modules/discord.js/src/structures/ChannelSelectMenuInteraction.js create mode 100644 node_modules/discord.js/src/structures/ChatInputCommandInteraction.js create mode 100644 node_modules/discord.js/src/structures/ClientApplication.js create mode 100644 node_modules/discord.js/src/structures/ClientPresence.js create mode 100644 node_modules/discord.js/src/structures/ClientUser.js create mode 100644 node_modules/discord.js/src/structures/CommandInteraction.js create mode 100644 node_modules/discord.js/src/structures/CommandInteractionOptionResolver.js create mode 100644 node_modules/discord.js/src/structures/Component.js create mode 100644 node_modules/discord.js/src/structures/ContainerComponent.js create mode 100644 node_modules/discord.js/src/structures/ContextMenuCommandInteraction.js create mode 100644 node_modules/discord.js/src/structures/DMChannel.js create mode 100644 node_modules/discord.js/src/structures/DirectoryChannel.js create mode 100644 node_modules/discord.js/src/structures/Embed.js create mode 100644 node_modules/discord.js/src/structures/EmbedBuilder.js create mode 100644 node_modules/discord.js/src/structures/Emoji.js create mode 100644 node_modules/discord.js/src/structures/Entitlement.js create mode 100644 node_modules/discord.js/src/structures/FileComponent.js create mode 100644 node_modules/discord.js/src/structures/ForumChannel.js create mode 100644 node_modules/discord.js/src/structures/Guild.js create mode 100644 node_modules/discord.js/src/structures/GuildAuditLogs.js create mode 100644 node_modules/discord.js/src/structures/GuildAuditLogsEntry.js create mode 100644 node_modules/discord.js/src/structures/GuildBan.js create mode 100644 node_modules/discord.js/src/structures/GuildChannel.js create mode 100644 node_modules/discord.js/src/structures/GuildEmoji.js create mode 100644 node_modules/discord.js/src/structures/GuildMember.js create mode 100644 node_modules/discord.js/src/structures/GuildOnboarding.js create mode 100644 node_modules/discord.js/src/structures/GuildOnboardingPrompt.js create mode 100644 node_modules/discord.js/src/structures/GuildOnboardingPromptOption.js create mode 100644 node_modules/discord.js/src/structures/GuildPreview.js create mode 100644 node_modules/discord.js/src/structures/GuildPreviewEmoji.js create mode 100644 node_modules/discord.js/src/structures/GuildScheduledEvent.js create mode 100644 node_modules/discord.js/src/structures/GuildTemplate.js create mode 100644 node_modules/discord.js/src/structures/Integration.js create mode 100644 node_modules/discord.js/src/structures/IntegrationApplication.js create mode 100644 node_modules/discord.js/src/structures/InteractionCallback.js create mode 100644 node_modules/discord.js/src/structures/InteractionCallbackResource.js create mode 100644 node_modules/discord.js/src/structures/InteractionCallbackResponse.js create mode 100644 node_modules/discord.js/src/structures/InteractionCollector.js create mode 100644 node_modules/discord.js/src/structures/InteractionResponse.js create mode 100644 node_modules/discord.js/src/structures/InteractionWebhook.js create mode 100644 node_modules/discord.js/src/structures/Invite.js create mode 100644 node_modules/discord.js/src/structures/InviteGuild.js create mode 100644 node_modules/discord.js/src/structures/InviteStageInstance.js create mode 100644 node_modules/discord.js/src/structures/LabelComponent.js create mode 100644 node_modules/discord.js/src/structures/MediaChannel.js create mode 100644 node_modules/discord.js/src/structures/MediaGalleryComponent.js create mode 100644 node_modules/discord.js/src/structures/MediaGalleryItem.js create mode 100644 node_modules/discord.js/src/structures/MentionableSelectMenuBuilder.js create mode 100644 node_modules/discord.js/src/structures/MentionableSelectMenuComponent.js create mode 100644 node_modules/discord.js/src/structures/MentionableSelectMenuInteraction.js create mode 100644 node_modules/discord.js/src/structures/Message.js create mode 100644 node_modules/discord.js/src/structures/MessageCollector.js create mode 100644 node_modules/discord.js/src/structures/MessageComponentInteraction.js create mode 100644 node_modules/discord.js/src/structures/MessageContextMenuCommandInteraction.js create mode 100644 node_modules/discord.js/src/structures/MessageMentions.js create mode 100644 node_modules/discord.js/src/structures/MessagePayload.js create mode 100644 node_modules/discord.js/src/structures/MessageReaction.js create mode 100644 node_modules/discord.js/src/structures/ModalBuilder.js create mode 100644 node_modules/discord.js/src/structures/ModalSubmitFields.js create mode 100644 node_modules/discord.js/src/structures/ModalSubmitInteraction.js create mode 100644 node_modules/discord.js/src/structures/NewsChannel.js create mode 100644 node_modules/discord.js/src/structures/OAuth2Guild.js create mode 100644 node_modules/discord.js/src/structures/PartialGroupDMChannel.js create mode 100644 node_modules/discord.js/src/structures/PermissionOverwrites.js create mode 100644 node_modules/discord.js/src/structures/Poll.js create mode 100644 node_modules/discord.js/src/structures/PollAnswer.js create mode 100644 node_modules/discord.js/src/structures/Presence.js create mode 100644 node_modules/discord.js/src/structures/PrimaryEntryPointCommandInteraction.js create mode 100644 node_modules/discord.js/src/structures/ReactionCollector.js create mode 100644 node_modules/discord.js/src/structures/ReactionEmoji.js create mode 100644 node_modules/discord.js/src/structures/Role.js create mode 100644 node_modules/discord.js/src/structures/RoleSelectMenuBuilder.js create mode 100644 node_modules/discord.js/src/structures/RoleSelectMenuComponent.js create mode 100644 node_modules/discord.js/src/structures/RoleSelectMenuInteraction.js create mode 100644 node_modules/discord.js/src/structures/SKU.js create mode 100644 node_modules/discord.js/src/structures/SectionComponent.js create mode 100644 node_modules/discord.js/src/structures/SelectMenuBuilder.js create mode 100644 node_modules/discord.js/src/structures/SelectMenuComponent.js create mode 100644 node_modules/discord.js/src/structures/SelectMenuInteraction.js create mode 100644 node_modules/discord.js/src/structures/SelectMenuOptionBuilder.js create mode 100644 node_modules/discord.js/src/structures/SeparatorComponent.js create mode 100644 node_modules/discord.js/src/structures/SoundboardSound.js create mode 100644 node_modules/discord.js/src/structures/StageChannel.js create mode 100644 node_modules/discord.js/src/structures/StageInstance.js create mode 100644 node_modules/discord.js/src/structures/Sticker.js create mode 100644 node_modules/discord.js/src/structures/StickerPack.js create mode 100644 node_modules/discord.js/src/structures/StringSelectMenuBuilder.js create mode 100644 node_modules/discord.js/src/structures/StringSelectMenuComponent.js create mode 100644 node_modules/discord.js/src/structures/StringSelectMenuInteraction.js create mode 100644 node_modules/discord.js/src/structures/StringSelectMenuOptionBuilder.js create mode 100644 node_modules/discord.js/src/structures/Subscription.js create mode 100644 node_modules/discord.js/src/structures/Team.js create mode 100644 node_modules/discord.js/src/structures/TeamMember.js create mode 100644 node_modules/discord.js/src/structures/TextChannel.js create mode 100644 node_modules/discord.js/src/structures/TextDisplayComponent.js create mode 100644 node_modules/discord.js/src/structures/TextInputBuilder.js create mode 100644 node_modules/discord.js/src/structures/TextInputComponent.js create mode 100644 node_modules/discord.js/src/structures/ThreadChannel.js create mode 100644 node_modules/discord.js/src/structures/ThreadMember.js create mode 100644 node_modules/discord.js/src/structures/ThreadOnlyChannel.js create mode 100644 node_modules/discord.js/src/structures/ThumbnailComponent.js create mode 100644 node_modules/discord.js/src/structures/Typing.js create mode 100644 node_modules/discord.js/src/structures/UnfurledMediaItem.js create mode 100644 node_modules/discord.js/src/structures/User.js create mode 100644 node_modules/discord.js/src/structures/UserContextMenuCommandInteraction.js create mode 100644 node_modules/discord.js/src/structures/UserSelectMenuBuilder.js create mode 100644 node_modules/discord.js/src/structures/UserSelectMenuComponent.js create mode 100644 node_modules/discord.js/src/structures/UserSelectMenuInteraction.js create mode 100644 node_modules/discord.js/src/structures/VoiceChannel.js create mode 100644 node_modules/discord.js/src/structures/VoiceChannelEffect.js create mode 100644 node_modules/discord.js/src/structures/VoiceRegion.js create mode 100644 node_modules/discord.js/src/structures/VoiceState.js create mode 100644 node_modules/discord.js/src/structures/Webhook.js create mode 100644 node_modules/discord.js/src/structures/WelcomeChannel.js create mode 100644 node_modules/discord.js/src/structures/WelcomeScreen.js create mode 100644 node_modules/discord.js/src/structures/Widget.js create mode 100644 node_modules/discord.js/src/structures/WidgetMember.js create mode 100644 node_modules/discord.js/src/structures/interfaces/Application.js create mode 100644 node_modules/discord.js/src/structures/interfaces/Collector.js create mode 100644 node_modules/discord.js/src/structures/interfaces/InteractionResponses.js create mode 100644 node_modules/discord.js/src/structures/interfaces/TextBasedChannel.js create mode 100644 node_modules/discord.js/src/util/APITypes.js create mode 100644 node_modules/discord.js/src/util/ActivityFlagsBitField.js create mode 100644 node_modules/discord.js/src/util/ApplicationFlagsBitField.js create mode 100644 node_modules/discord.js/src/util/AttachmentFlagsBitField.js create mode 100644 node_modules/discord.js/src/util/BitField.js create mode 100644 node_modules/discord.js/src/util/ChannelFlagsBitField.js create mode 100644 node_modules/discord.js/src/util/Channels.js create mode 100644 node_modules/discord.js/src/util/Colors.js create mode 100644 node_modules/discord.js/src/util/Components.js create mode 100644 node_modules/discord.js/src/util/Constants.js create mode 100644 node_modules/discord.js/src/util/DataResolver.js create mode 100644 node_modules/discord.js/src/util/Enums.js create mode 100644 node_modules/discord.js/src/util/Events.js create mode 100644 node_modules/discord.js/src/util/Formatters.js create mode 100644 node_modules/discord.js/src/util/GuildMemberFlagsBitField.js create mode 100644 node_modules/discord.js/src/util/IntentsBitField.js create mode 100644 node_modules/discord.js/src/util/InviteFlagsBitField.js create mode 100644 node_modules/discord.js/src/util/LimitedCollection.js create mode 100644 node_modules/discord.js/src/util/MessageFlagsBitField.js create mode 100644 node_modules/discord.js/src/util/Options.js create mode 100644 node_modules/discord.js/src/util/Partials.js create mode 100644 node_modules/discord.js/src/util/PermissionsBitField.js create mode 100644 node_modules/discord.js/src/util/RoleFlagsBitField.js create mode 100644 node_modules/discord.js/src/util/SKUFlagsBitField.js create mode 100644 node_modules/discord.js/src/util/ShardEvents.js create mode 100644 node_modules/discord.js/src/util/Status.js create mode 100644 node_modules/discord.js/src/util/Sweepers.js create mode 100644 node_modules/discord.js/src/util/Symbols.js create mode 100644 node_modules/discord.js/src/util/SystemChannelFlagsBitField.js create mode 100644 node_modules/discord.js/src/util/ThreadMemberFlagsBitField.js create mode 100644 node_modules/discord.js/src/util/Transformers.js create mode 100644 node_modules/discord.js/src/util/UserFlagsBitField.js create mode 100644 node_modules/discord.js/src/util/Util.js create mode 100644 node_modules/discord.js/src/util/WebSocketShardEvents.js create mode 100644 node_modules/discord.js/typings/index.d.mts create mode 100644 node_modules/discord.js/typings/index.d.ts create mode 100644 node_modules/discord.js/typings/rawDataTypes.d.mts create mode 100644 node_modules/discord.js/typings/rawDataTypes.d.ts create mode 100644 node_modules/dotenv/CHANGELOG.md create mode 100644 node_modules/dotenv/LICENSE create mode 100644 node_modules/dotenv/README-es.md create mode 100644 node_modules/dotenv/README.md create mode 100644 node_modules/dotenv/SECURITY.md create mode 100644 node_modules/dotenv/config.d.ts create mode 100644 node_modules/dotenv/config.js create mode 100644 node_modules/dotenv/lib/cli-options.js create mode 100644 node_modules/dotenv/lib/env-options.js create mode 100644 node_modules/dotenv/lib/main.d.ts create mode 100644 node_modules/dotenv/lib/main.js create mode 100644 node_modules/dotenv/package.json create mode 100644 node_modules/dunder-proto/.eslintrc create mode 100644 node_modules/dunder-proto/.github/FUNDING.yml create mode 100644 node_modules/dunder-proto/.nycrc create mode 100644 node_modules/dunder-proto/CHANGELOG.md create mode 100644 node_modules/dunder-proto/LICENSE create mode 100644 node_modules/dunder-proto/README.md create mode 100644 node_modules/dunder-proto/get.d.ts create mode 100644 node_modules/dunder-proto/get.js create mode 100644 node_modules/dunder-proto/package.json create mode 100644 node_modules/dunder-proto/set.d.ts create mode 100644 node_modules/dunder-proto/set.js create mode 100644 node_modules/dunder-proto/test/get.js create mode 100644 node_modules/dunder-proto/test/index.js create mode 100644 node_modules/dunder-proto/test/set.js create mode 100644 node_modules/dunder-proto/tsconfig.json create mode 100644 node_modules/ee-first/LICENSE create mode 100644 node_modules/ee-first/README.md create mode 100644 node_modules/ee-first/index.js create mode 100644 node_modules/ee-first/package.json create mode 100644 node_modules/encodeurl/LICENSE create mode 100644 node_modules/encodeurl/README.md create mode 100644 node_modules/encodeurl/index.js create mode 100644 node_modules/encodeurl/package.json create mode 100644 node_modules/es-define-property/.eslintrc create mode 100644 node_modules/es-define-property/.github/FUNDING.yml create mode 100644 node_modules/es-define-property/.nycrc create mode 100644 node_modules/es-define-property/CHANGELOG.md create mode 100644 node_modules/es-define-property/LICENSE create mode 100644 node_modules/es-define-property/README.md create mode 100644 node_modules/es-define-property/index.d.ts create mode 100644 node_modules/es-define-property/index.js create mode 100644 node_modules/es-define-property/package.json create mode 100644 node_modules/es-define-property/test/index.js create mode 100644 node_modules/es-define-property/tsconfig.json create mode 100644 node_modules/es-errors/.eslintrc create mode 100644 node_modules/es-errors/.github/FUNDING.yml create mode 100644 node_modules/es-errors/CHANGELOG.md create mode 100644 node_modules/es-errors/LICENSE create mode 100644 node_modules/es-errors/README.md create mode 100644 node_modules/es-errors/eval.d.ts create mode 100644 node_modules/es-errors/eval.js create mode 100644 node_modules/es-errors/index.d.ts create mode 100644 node_modules/es-errors/index.js create mode 100644 node_modules/es-errors/package.json create mode 100644 node_modules/es-errors/range.d.ts create mode 100644 node_modules/es-errors/range.js create mode 100644 node_modules/es-errors/ref.d.ts create mode 100644 node_modules/es-errors/ref.js create mode 100644 node_modules/es-errors/syntax.d.ts create mode 100644 node_modules/es-errors/syntax.js create mode 100644 node_modules/es-errors/test/index.js create mode 100644 node_modules/es-errors/tsconfig.json create mode 100644 node_modules/es-errors/type.d.ts create mode 100644 node_modules/es-errors/type.js create mode 100644 node_modules/es-errors/uri.d.ts create mode 100644 node_modules/es-errors/uri.js create mode 100644 node_modules/es-object-atoms/.eslintrc create mode 100644 node_modules/es-object-atoms/.github/FUNDING.yml create mode 100644 node_modules/es-object-atoms/CHANGELOG.md create mode 100644 node_modules/es-object-atoms/LICENSE create mode 100644 node_modules/es-object-atoms/README.md create mode 100644 node_modules/es-object-atoms/RequireObjectCoercible.d.ts create mode 100644 node_modules/es-object-atoms/RequireObjectCoercible.js create mode 100644 node_modules/es-object-atoms/ToObject.d.ts create mode 100644 node_modules/es-object-atoms/ToObject.js create mode 100644 node_modules/es-object-atoms/index.d.ts create mode 100644 node_modules/es-object-atoms/index.js create mode 100644 node_modules/es-object-atoms/isObject.d.ts create mode 100644 node_modules/es-object-atoms/isObject.js create mode 100644 node_modules/es-object-atoms/package.json create mode 100644 node_modules/es-object-atoms/test/index.js create mode 100644 node_modules/es-object-atoms/tsconfig.json create mode 100644 node_modules/escape-html/LICENSE create mode 100644 node_modules/escape-html/Readme.md create mode 100644 node_modules/escape-html/index.js create mode 100644 node_modules/escape-html/package.json create mode 100644 node_modules/etag/HISTORY.md create mode 100644 node_modules/etag/LICENSE create mode 100644 node_modules/etag/README.md create mode 100644 node_modules/etag/index.js create mode 100644 node_modules/etag/package.json create mode 100644 node_modules/express/History.md create mode 100644 node_modules/express/LICENSE create mode 100644 node_modules/express/Readme.md create mode 100644 node_modules/express/index.js create mode 100644 node_modules/express/lib/application.js create mode 100644 node_modules/express/lib/express.js create mode 100644 node_modules/express/lib/middleware/init.js create mode 100644 node_modules/express/lib/middleware/query.js create mode 100644 node_modules/express/lib/request.js create mode 100644 node_modules/express/lib/response.js create mode 100644 node_modules/express/lib/router/index.js create mode 100644 node_modules/express/lib/router/layer.js create mode 100644 node_modules/express/lib/router/route.js create mode 100644 node_modules/express/lib/utils.js create mode 100644 node_modules/express/lib/view.js create mode 100644 node_modules/express/package.json create mode 100644 node_modules/fast-deep-equal/LICENSE create mode 100644 node_modules/fast-deep-equal/README.md create mode 100644 node_modules/fast-deep-equal/es6/index.d.ts create mode 100644 node_modules/fast-deep-equal/es6/index.js create mode 100644 node_modules/fast-deep-equal/es6/react.d.ts create mode 100644 node_modules/fast-deep-equal/es6/react.js create mode 100644 node_modules/fast-deep-equal/index.d.ts create mode 100644 node_modules/fast-deep-equal/index.js create mode 100644 node_modules/fast-deep-equal/package.json create mode 100644 node_modules/fast-deep-equal/react.d.ts create mode 100644 node_modules/fast-deep-equal/react.js create mode 100644 node_modules/finalhandler/HISTORY.md create mode 100644 node_modules/finalhandler/LICENSE create mode 100644 node_modules/finalhandler/README.md create mode 100644 node_modules/finalhandler/SECURITY.md create mode 100644 node_modules/finalhandler/index.js create mode 100644 node_modules/finalhandler/package.json create mode 100644 node_modules/forwarded/HISTORY.md create mode 100644 node_modules/forwarded/LICENSE create mode 100644 node_modules/forwarded/README.md create mode 100644 node_modules/forwarded/index.js create mode 100644 node_modules/forwarded/package.json create mode 100644 node_modules/fresh/HISTORY.md create mode 100644 node_modules/fresh/LICENSE create mode 100644 node_modules/fresh/README.md create mode 100644 node_modules/fresh/index.js create mode 100644 node_modules/fresh/package.json create mode 100644 node_modules/function-bind/.eslintrc create mode 100644 node_modules/function-bind/.github/FUNDING.yml create mode 100644 node_modules/function-bind/.github/SECURITY.md create mode 100644 node_modules/function-bind/.nycrc create mode 100644 node_modules/function-bind/CHANGELOG.md create mode 100644 node_modules/function-bind/LICENSE create mode 100644 node_modules/function-bind/README.md create mode 100644 node_modules/function-bind/implementation.js create mode 100644 node_modules/function-bind/index.js create mode 100644 node_modules/function-bind/package.json create mode 100644 node_modules/function-bind/test/.eslintrc create mode 100644 node_modules/function-bind/test/index.js create mode 100644 node_modules/get-intrinsic/.eslintrc create mode 100644 node_modules/get-intrinsic/.github/FUNDING.yml create mode 100644 node_modules/get-intrinsic/.nycrc create mode 100644 node_modules/get-intrinsic/CHANGELOG.md create mode 100644 node_modules/get-intrinsic/LICENSE create mode 100644 node_modules/get-intrinsic/README.md create mode 100644 node_modules/get-intrinsic/index.js create mode 100644 node_modules/get-intrinsic/package.json create mode 100644 node_modules/get-intrinsic/test/GetIntrinsic.js create mode 100644 node_modules/get-proto/.eslintrc create mode 100644 node_modules/get-proto/.github/FUNDING.yml create mode 100644 node_modules/get-proto/.nycrc create mode 100644 node_modules/get-proto/CHANGELOG.md create mode 100644 node_modules/get-proto/LICENSE create mode 100644 node_modules/get-proto/Object.getPrototypeOf.d.ts create mode 100644 node_modules/get-proto/Object.getPrototypeOf.js create mode 100644 node_modules/get-proto/README.md create mode 100644 node_modules/get-proto/Reflect.getPrototypeOf.d.ts create mode 100644 node_modules/get-proto/Reflect.getPrototypeOf.js create mode 100644 node_modules/get-proto/index.d.ts create mode 100644 node_modules/get-proto/index.js create mode 100644 node_modules/get-proto/package.json create mode 100644 node_modules/get-proto/test/index.js create mode 100644 node_modules/get-proto/tsconfig.json create mode 100644 node_modules/gopd/.eslintrc create mode 100644 node_modules/gopd/.github/FUNDING.yml create mode 100644 node_modules/gopd/CHANGELOG.md create mode 100644 node_modules/gopd/LICENSE create mode 100644 node_modules/gopd/README.md create mode 100644 node_modules/gopd/gOPD.d.ts create mode 100644 node_modules/gopd/gOPD.js create mode 100644 node_modules/gopd/index.d.ts create mode 100644 node_modules/gopd/index.js create mode 100644 node_modules/gopd/package.json create mode 100644 node_modules/gopd/test/index.js create mode 100644 node_modules/gopd/tsconfig.json create mode 100644 node_modules/has-symbols/.eslintrc create mode 100644 node_modules/has-symbols/.github/FUNDING.yml create mode 100644 node_modules/has-symbols/.nycrc create mode 100644 node_modules/has-symbols/CHANGELOG.md create mode 100644 node_modules/has-symbols/LICENSE create mode 100644 node_modules/has-symbols/README.md create mode 100644 node_modules/has-symbols/index.d.ts create mode 100644 node_modules/has-symbols/index.js create mode 100644 node_modules/has-symbols/package.json create mode 100644 node_modules/has-symbols/shams.d.ts create mode 100644 node_modules/has-symbols/shams.js create mode 100644 node_modules/has-symbols/test/index.js create mode 100644 node_modules/has-symbols/test/shams/core-js.js create mode 100644 node_modules/has-symbols/test/shams/get-own-property-symbols.js create mode 100644 node_modules/has-symbols/test/tests.js create mode 100644 node_modules/has-symbols/tsconfig.json create mode 100644 node_modules/hasown/.eslintrc create mode 100644 node_modules/hasown/.github/FUNDING.yml create mode 100644 node_modules/hasown/.nycrc create mode 100644 node_modules/hasown/CHANGELOG.md create mode 100644 node_modules/hasown/LICENSE create mode 100644 node_modules/hasown/README.md create mode 100644 node_modules/hasown/index.d.ts create mode 100644 node_modules/hasown/index.js create mode 100644 node_modules/hasown/package.json create mode 100644 node_modules/hasown/tsconfig.json create mode 100644 node_modules/http-errors/HISTORY.md create mode 100644 node_modules/http-errors/LICENSE create mode 100644 node_modules/http-errors/README.md create mode 100644 node_modules/http-errors/index.js create mode 100644 node_modules/http-errors/package.json create mode 100644 node_modules/iconv-lite/Changelog.md create mode 100644 node_modules/iconv-lite/LICENSE create mode 100644 node_modules/iconv-lite/README.md create mode 100644 node_modules/iconv-lite/encodings/dbcs-codec.js create mode 100644 node_modules/iconv-lite/encodings/dbcs-data.js create mode 100644 node_modules/iconv-lite/encodings/index.js create mode 100644 node_modules/iconv-lite/encodings/internal.js create mode 100644 node_modules/iconv-lite/encodings/sbcs-codec.js create mode 100644 node_modules/iconv-lite/encodings/sbcs-data-generated.js create mode 100644 node_modules/iconv-lite/encodings/sbcs-data.js create mode 100644 node_modules/iconv-lite/encodings/tables/big5-added.json create mode 100644 node_modules/iconv-lite/encodings/tables/cp936.json create mode 100644 node_modules/iconv-lite/encodings/tables/cp949.json create mode 100644 node_modules/iconv-lite/encodings/tables/cp950.json create mode 100644 node_modules/iconv-lite/encodings/tables/eucjp.json create mode 100644 node_modules/iconv-lite/encodings/tables/gb18030-ranges.json create mode 100644 node_modules/iconv-lite/encodings/tables/gbk-added.json create mode 100644 node_modules/iconv-lite/encodings/tables/shiftjis.json create mode 100644 node_modules/iconv-lite/encodings/utf16.js create mode 100644 node_modules/iconv-lite/encodings/utf7.js create mode 100644 node_modules/iconv-lite/lib/bom-handling.js create mode 100644 node_modules/iconv-lite/lib/extend-node.js create mode 100644 node_modules/iconv-lite/lib/index.d.ts create mode 100644 node_modules/iconv-lite/lib/index.js create mode 100644 node_modules/iconv-lite/lib/streams.js create mode 100644 node_modules/iconv-lite/package.json create mode 100644 node_modules/inherits/LICENSE create mode 100644 node_modules/inherits/README.md create mode 100644 node_modules/inherits/inherits.js create mode 100644 node_modules/inherits/inherits_browser.js create mode 100644 node_modules/inherits/package.json create mode 100644 node_modules/ipaddr.js/LICENSE create mode 100644 node_modules/ipaddr.js/README.md create mode 100644 node_modules/ipaddr.js/ipaddr.min.js create mode 100644 node_modules/ipaddr.js/lib/ipaddr.js create mode 100644 node_modules/ipaddr.js/lib/ipaddr.js.d.ts create mode 100644 node_modules/ipaddr.js/package.json create mode 100644 node_modules/lodash.snakecase/LICENSE create mode 100644 node_modules/lodash.snakecase/README.md create mode 100644 node_modules/lodash.snakecase/index.js create mode 100644 node_modules/lodash.snakecase/package.json create mode 100644 node_modules/lodash/LICENSE create mode 100644 node_modules/lodash/README.md create mode 100644 node_modules/lodash/_DataView.js create mode 100644 node_modules/lodash/_Hash.js create mode 100644 node_modules/lodash/_LazyWrapper.js create mode 100644 node_modules/lodash/_ListCache.js create mode 100644 node_modules/lodash/_LodashWrapper.js create mode 100644 node_modules/lodash/_Map.js create mode 100644 node_modules/lodash/_MapCache.js create mode 100644 node_modules/lodash/_Promise.js create mode 100644 node_modules/lodash/_Set.js create mode 100644 node_modules/lodash/_SetCache.js create mode 100644 node_modules/lodash/_Stack.js create mode 100644 node_modules/lodash/_Symbol.js create mode 100644 node_modules/lodash/_Uint8Array.js create mode 100644 node_modules/lodash/_WeakMap.js create mode 100644 node_modules/lodash/_apply.js create mode 100644 node_modules/lodash/_arrayAggregator.js create mode 100644 node_modules/lodash/_arrayEach.js create mode 100644 node_modules/lodash/_arrayEachRight.js create mode 100644 node_modules/lodash/_arrayEvery.js create mode 100644 node_modules/lodash/_arrayFilter.js create mode 100644 node_modules/lodash/_arrayIncludes.js create mode 100644 node_modules/lodash/_arrayIncludesWith.js create mode 100644 node_modules/lodash/_arrayLikeKeys.js create mode 100644 node_modules/lodash/_arrayMap.js create mode 100644 node_modules/lodash/_arrayPush.js create mode 100644 node_modules/lodash/_arrayReduce.js create mode 100644 node_modules/lodash/_arrayReduceRight.js create mode 100644 node_modules/lodash/_arraySample.js create mode 100644 node_modules/lodash/_arraySampleSize.js create mode 100644 node_modules/lodash/_arrayShuffle.js create mode 100644 node_modules/lodash/_arraySome.js create mode 100644 node_modules/lodash/_asciiSize.js create mode 100644 node_modules/lodash/_asciiToArray.js create mode 100644 node_modules/lodash/_asciiWords.js create mode 100644 node_modules/lodash/_assignMergeValue.js create mode 100644 node_modules/lodash/_assignValue.js create mode 100644 node_modules/lodash/_assocIndexOf.js create mode 100644 node_modules/lodash/_baseAggregator.js create mode 100644 node_modules/lodash/_baseAssign.js create mode 100644 node_modules/lodash/_baseAssignIn.js create mode 100644 node_modules/lodash/_baseAssignValue.js create mode 100644 node_modules/lodash/_baseAt.js create mode 100644 node_modules/lodash/_baseClamp.js create mode 100644 node_modules/lodash/_baseClone.js create mode 100644 node_modules/lodash/_baseConforms.js create mode 100644 node_modules/lodash/_baseConformsTo.js create mode 100644 node_modules/lodash/_baseCreate.js create mode 100644 node_modules/lodash/_baseDelay.js create mode 100644 node_modules/lodash/_baseDifference.js create mode 100644 node_modules/lodash/_baseEach.js create mode 100644 node_modules/lodash/_baseEachRight.js create mode 100644 node_modules/lodash/_baseEvery.js create mode 100644 node_modules/lodash/_baseExtremum.js create mode 100644 node_modules/lodash/_baseFill.js create mode 100644 node_modules/lodash/_baseFilter.js create mode 100644 node_modules/lodash/_baseFindIndex.js create mode 100644 node_modules/lodash/_baseFindKey.js create mode 100644 node_modules/lodash/_baseFlatten.js create mode 100644 node_modules/lodash/_baseFor.js create mode 100644 node_modules/lodash/_baseForOwn.js create mode 100644 node_modules/lodash/_baseForOwnRight.js create mode 100644 node_modules/lodash/_baseForRight.js create mode 100644 node_modules/lodash/_baseFunctions.js create mode 100644 node_modules/lodash/_baseGet.js create mode 100644 node_modules/lodash/_baseGetAllKeys.js create mode 100644 node_modules/lodash/_baseGetTag.js create mode 100644 node_modules/lodash/_baseGt.js create mode 100644 node_modules/lodash/_baseHas.js create mode 100644 node_modules/lodash/_baseHasIn.js create mode 100644 node_modules/lodash/_baseInRange.js create mode 100644 node_modules/lodash/_baseIndexOf.js create mode 100644 node_modules/lodash/_baseIndexOfWith.js create mode 100644 node_modules/lodash/_baseIntersection.js create mode 100644 node_modules/lodash/_baseInverter.js create mode 100644 node_modules/lodash/_baseInvoke.js create mode 100644 node_modules/lodash/_baseIsArguments.js create mode 100644 node_modules/lodash/_baseIsArrayBuffer.js create mode 100644 node_modules/lodash/_baseIsDate.js create mode 100644 node_modules/lodash/_baseIsEqual.js create mode 100644 node_modules/lodash/_baseIsEqualDeep.js create mode 100644 node_modules/lodash/_baseIsMap.js create mode 100644 node_modules/lodash/_baseIsMatch.js create mode 100644 node_modules/lodash/_baseIsNaN.js create mode 100644 node_modules/lodash/_baseIsNative.js create mode 100644 node_modules/lodash/_baseIsRegExp.js create mode 100644 node_modules/lodash/_baseIsSet.js create mode 100644 node_modules/lodash/_baseIsTypedArray.js create mode 100644 node_modules/lodash/_baseIteratee.js create mode 100644 node_modules/lodash/_baseKeys.js create mode 100644 node_modules/lodash/_baseKeysIn.js create mode 100644 node_modules/lodash/_baseLodash.js create mode 100644 node_modules/lodash/_baseLt.js create mode 100644 node_modules/lodash/_baseMap.js create mode 100644 node_modules/lodash/_baseMatches.js create mode 100644 node_modules/lodash/_baseMatchesProperty.js create mode 100644 node_modules/lodash/_baseMean.js create mode 100644 node_modules/lodash/_baseMerge.js create mode 100644 node_modules/lodash/_baseMergeDeep.js create mode 100644 node_modules/lodash/_baseNth.js create mode 100644 node_modules/lodash/_baseOrderBy.js create mode 100644 node_modules/lodash/_basePick.js create mode 100644 node_modules/lodash/_basePickBy.js create mode 100644 node_modules/lodash/_baseProperty.js create mode 100644 node_modules/lodash/_basePropertyDeep.js create mode 100644 node_modules/lodash/_basePropertyOf.js create mode 100644 node_modules/lodash/_basePullAll.js create mode 100644 node_modules/lodash/_basePullAt.js create mode 100644 node_modules/lodash/_baseRandom.js create mode 100644 node_modules/lodash/_baseRange.js create mode 100644 node_modules/lodash/_baseReduce.js create mode 100644 node_modules/lodash/_baseRepeat.js create mode 100644 node_modules/lodash/_baseRest.js create mode 100644 node_modules/lodash/_baseSample.js create mode 100644 node_modules/lodash/_baseSampleSize.js create mode 100644 node_modules/lodash/_baseSet.js create mode 100644 node_modules/lodash/_baseSetData.js create mode 100644 node_modules/lodash/_baseSetToString.js create mode 100644 node_modules/lodash/_baseShuffle.js create mode 100644 node_modules/lodash/_baseSlice.js create mode 100644 node_modules/lodash/_baseSome.js create mode 100644 node_modules/lodash/_baseSortBy.js create mode 100644 node_modules/lodash/_baseSortedIndex.js create mode 100644 node_modules/lodash/_baseSortedIndexBy.js create mode 100644 node_modules/lodash/_baseSortedUniq.js create mode 100644 node_modules/lodash/_baseSum.js create mode 100644 node_modules/lodash/_baseTimes.js create mode 100644 node_modules/lodash/_baseToNumber.js create mode 100644 node_modules/lodash/_baseToPairs.js create mode 100644 node_modules/lodash/_baseToString.js create mode 100644 node_modules/lodash/_baseTrim.js create mode 100644 node_modules/lodash/_baseUnary.js create mode 100644 node_modules/lodash/_baseUniq.js create mode 100644 node_modules/lodash/_baseUnset.js create mode 100644 node_modules/lodash/_baseUpdate.js create mode 100644 node_modules/lodash/_baseValues.js create mode 100644 node_modules/lodash/_baseWhile.js create mode 100644 node_modules/lodash/_baseWrapperValue.js create mode 100644 node_modules/lodash/_baseXor.js create mode 100644 node_modules/lodash/_baseZipObject.js create mode 100644 node_modules/lodash/_cacheHas.js create mode 100644 node_modules/lodash/_castArrayLikeObject.js create mode 100644 node_modules/lodash/_castFunction.js create mode 100644 node_modules/lodash/_castPath.js create mode 100644 node_modules/lodash/_castRest.js create mode 100644 node_modules/lodash/_castSlice.js create mode 100644 node_modules/lodash/_charsEndIndex.js create mode 100644 node_modules/lodash/_charsStartIndex.js create mode 100644 node_modules/lodash/_cloneArrayBuffer.js create mode 100644 node_modules/lodash/_cloneBuffer.js create mode 100644 node_modules/lodash/_cloneDataView.js create mode 100644 node_modules/lodash/_cloneRegExp.js create mode 100644 node_modules/lodash/_cloneSymbol.js create mode 100644 node_modules/lodash/_cloneTypedArray.js create mode 100644 node_modules/lodash/_compareAscending.js create mode 100644 node_modules/lodash/_compareMultiple.js create mode 100644 node_modules/lodash/_composeArgs.js create mode 100644 node_modules/lodash/_composeArgsRight.js create mode 100644 node_modules/lodash/_copyArray.js create mode 100644 node_modules/lodash/_copyObject.js create mode 100644 node_modules/lodash/_copySymbols.js create mode 100644 node_modules/lodash/_copySymbolsIn.js create mode 100644 node_modules/lodash/_coreJsData.js create mode 100644 node_modules/lodash/_countHolders.js create mode 100644 node_modules/lodash/_createAggregator.js create mode 100644 node_modules/lodash/_createAssigner.js create mode 100644 node_modules/lodash/_createBaseEach.js create mode 100644 node_modules/lodash/_createBaseFor.js create mode 100644 node_modules/lodash/_createBind.js create mode 100644 node_modules/lodash/_createCaseFirst.js create mode 100644 node_modules/lodash/_createCompounder.js create mode 100644 node_modules/lodash/_createCtor.js create mode 100644 node_modules/lodash/_createCurry.js create mode 100644 node_modules/lodash/_createFind.js create mode 100644 node_modules/lodash/_createFlow.js create mode 100644 node_modules/lodash/_createHybrid.js create mode 100644 node_modules/lodash/_createInverter.js create mode 100644 node_modules/lodash/_createMathOperation.js create mode 100644 node_modules/lodash/_createOver.js create mode 100644 node_modules/lodash/_createPadding.js create mode 100644 node_modules/lodash/_createPartial.js create mode 100644 node_modules/lodash/_createRange.js create mode 100644 node_modules/lodash/_createRecurry.js create mode 100644 node_modules/lodash/_createRelationalOperation.js create mode 100644 node_modules/lodash/_createRound.js create mode 100644 node_modules/lodash/_createSet.js create mode 100644 node_modules/lodash/_createToPairs.js create mode 100644 node_modules/lodash/_createWrap.js create mode 100644 node_modules/lodash/_customDefaultsAssignIn.js create mode 100644 node_modules/lodash/_customDefaultsMerge.js create mode 100644 node_modules/lodash/_customOmitClone.js create mode 100644 node_modules/lodash/_deburrLetter.js create mode 100644 node_modules/lodash/_defineProperty.js create mode 100644 node_modules/lodash/_equalArrays.js create mode 100644 node_modules/lodash/_equalByTag.js create mode 100644 node_modules/lodash/_equalObjects.js create mode 100644 node_modules/lodash/_escapeHtmlChar.js create mode 100644 node_modules/lodash/_escapeStringChar.js create mode 100644 node_modules/lodash/_flatRest.js create mode 100644 node_modules/lodash/_freeGlobal.js create mode 100644 node_modules/lodash/_getAllKeys.js create mode 100644 node_modules/lodash/_getAllKeysIn.js create mode 100644 node_modules/lodash/_getData.js create mode 100644 node_modules/lodash/_getFuncName.js create mode 100644 node_modules/lodash/_getHolder.js create mode 100644 node_modules/lodash/_getMapData.js create mode 100644 node_modules/lodash/_getMatchData.js create mode 100644 node_modules/lodash/_getNative.js create mode 100644 node_modules/lodash/_getPrototype.js create mode 100644 node_modules/lodash/_getRawTag.js create mode 100644 node_modules/lodash/_getSymbols.js create mode 100644 node_modules/lodash/_getSymbolsIn.js create mode 100644 node_modules/lodash/_getTag.js create mode 100644 node_modules/lodash/_getValue.js create mode 100644 node_modules/lodash/_getView.js create mode 100644 node_modules/lodash/_getWrapDetails.js create mode 100644 node_modules/lodash/_hasPath.js create mode 100644 node_modules/lodash/_hasUnicode.js create mode 100644 node_modules/lodash/_hasUnicodeWord.js create mode 100644 node_modules/lodash/_hashClear.js create mode 100644 node_modules/lodash/_hashDelete.js create mode 100644 node_modules/lodash/_hashGet.js create mode 100644 node_modules/lodash/_hashHas.js create mode 100644 node_modules/lodash/_hashSet.js create mode 100644 node_modules/lodash/_initCloneArray.js create mode 100644 node_modules/lodash/_initCloneByTag.js create mode 100644 node_modules/lodash/_initCloneObject.js create mode 100644 node_modules/lodash/_insertWrapDetails.js create mode 100644 node_modules/lodash/_isFlattenable.js create mode 100644 node_modules/lodash/_isIndex.js create mode 100644 node_modules/lodash/_isIterateeCall.js create mode 100644 node_modules/lodash/_isKey.js create mode 100644 node_modules/lodash/_isKeyable.js create mode 100644 node_modules/lodash/_isLaziable.js create mode 100644 node_modules/lodash/_isMaskable.js create mode 100644 node_modules/lodash/_isMasked.js create mode 100644 node_modules/lodash/_isPrototype.js create mode 100644 node_modules/lodash/_isStrictComparable.js create mode 100644 node_modules/lodash/_iteratorToArray.js create mode 100644 node_modules/lodash/_lazyClone.js create mode 100644 node_modules/lodash/_lazyReverse.js create mode 100644 node_modules/lodash/_lazyValue.js create mode 100644 node_modules/lodash/_listCacheClear.js create mode 100644 node_modules/lodash/_listCacheDelete.js create mode 100644 node_modules/lodash/_listCacheGet.js create mode 100644 node_modules/lodash/_listCacheHas.js create mode 100644 node_modules/lodash/_listCacheSet.js create mode 100644 node_modules/lodash/_mapCacheClear.js create mode 100644 node_modules/lodash/_mapCacheDelete.js create mode 100644 node_modules/lodash/_mapCacheGet.js create mode 100644 node_modules/lodash/_mapCacheHas.js create mode 100644 node_modules/lodash/_mapCacheSet.js create mode 100644 node_modules/lodash/_mapToArray.js create mode 100644 node_modules/lodash/_matchesStrictComparable.js create mode 100644 node_modules/lodash/_memoizeCapped.js create mode 100644 node_modules/lodash/_mergeData.js create mode 100644 node_modules/lodash/_metaMap.js create mode 100644 node_modules/lodash/_nativeCreate.js create mode 100644 node_modules/lodash/_nativeKeys.js create mode 100644 node_modules/lodash/_nativeKeysIn.js create mode 100644 node_modules/lodash/_nodeUtil.js create mode 100644 node_modules/lodash/_objectToString.js create mode 100644 node_modules/lodash/_overArg.js create mode 100644 node_modules/lodash/_overRest.js create mode 100644 node_modules/lodash/_parent.js create mode 100644 node_modules/lodash/_reEscape.js create mode 100644 node_modules/lodash/_reEvaluate.js create mode 100644 node_modules/lodash/_reInterpolate.js create mode 100644 node_modules/lodash/_realNames.js create mode 100644 node_modules/lodash/_reorder.js create mode 100644 node_modules/lodash/_replaceHolders.js create mode 100644 node_modules/lodash/_root.js create mode 100644 node_modules/lodash/_safeGet.js create mode 100644 node_modules/lodash/_setCacheAdd.js create mode 100644 node_modules/lodash/_setCacheHas.js create mode 100644 node_modules/lodash/_setData.js create mode 100644 node_modules/lodash/_setToArray.js create mode 100644 node_modules/lodash/_setToPairs.js create mode 100644 node_modules/lodash/_setToString.js create mode 100644 node_modules/lodash/_setWrapToString.js create mode 100644 node_modules/lodash/_shortOut.js create mode 100644 node_modules/lodash/_shuffleSelf.js create mode 100644 node_modules/lodash/_stackClear.js create mode 100644 node_modules/lodash/_stackDelete.js create mode 100644 node_modules/lodash/_stackGet.js create mode 100644 node_modules/lodash/_stackHas.js create mode 100644 node_modules/lodash/_stackSet.js create mode 100644 node_modules/lodash/_strictIndexOf.js create mode 100644 node_modules/lodash/_strictLastIndexOf.js create mode 100644 node_modules/lodash/_stringSize.js create mode 100644 node_modules/lodash/_stringToArray.js create mode 100644 node_modules/lodash/_stringToPath.js create mode 100644 node_modules/lodash/_toKey.js create mode 100644 node_modules/lodash/_toSource.js create mode 100644 node_modules/lodash/_trimmedEndIndex.js create mode 100644 node_modules/lodash/_unescapeHtmlChar.js create mode 100644 node_modules/lodash/_unicodeSize.js create mode 100644 node_modules/lodash/_unicodeToArray.js create mode 100644 node_modules/lodash/_unicodeWords.js create mode 100644 node_modules/lodash/_updateWrapDetails.js create mode 100644 node_modules/lodash/_wrapperClone.js create mode 100644 node_modules/lodash/add.js create mode 100644 node_modules/lodash/after.js create mode 100644 node_modules/lodash/array.js create mode 100644 node_modules/lodash/ary.js create mode 100644 node_modules/lodash/assign.js create mode 100644 node_modules/lodash/assignIn.js create mode 100644 node_modules/lodash/assignInWith.js create mode 100644 node_modules/lodash/assignWith.js create mode 100644 node_modules/lodash/at.js create mode 100644 node_modules/lodash/attempt.js create mode 100644 node_modules/lodash/before.js create mode 100644 node_modules/lodash/bind.js create mode 100644 node_modules/lodash/bindAll.js create mode 100644 node_modules/lodash/bindKey.js create mode 100644 node_modules/lodash/camelCase.js create mode 100644 node_modules/lodash/capitalize.js create mode 100644 node_modules/lodash/castArray.js create mode 100644 node_modules/lodash/ceil.js create mode 100644 node_modules/lodash/chain.js create mode 100644 node_modules/lodash/chunk.js create mode 100644 node_modules/lodash/clamp.js create mode 100644 node_modules/lodash/clone.js create mode 100644 node_modules/lodash/cloneDeep.js create mode 100644 node_modules/lodash/cloneDeepWith.js create mode 100644 node_modules/lodash/cloneWith.js create mode 100644 node_modules/lodash/collection.js create mode 100644 node_modules/lodash/commit.js create mode 100644 node_modules/lodash/compact.js create mode 100644 node_modules/lodash/concat.js create mode 100644 node_modules/lodash/cond.js create mode 100644 node_modules/lodash/conforms.js create mode 100644 node_modules/lodash/conformsTo.js create mode 100644 node_modules/lodash/constant.js create mode 100644 node_modules/lodash/core.js create mode 100644 node_modules/lodash/core.min.js create mode 100644 node_modules/lodash/countBy.js create mode 100644 node_modules/lodash/create.js create mode 100644 node_modules/lodash/curry.js create mode 100644 node_modules/lodash/curryRight.js create mode 100644 node_modules/lodash/date.js create mode 100644 node_modules/lodash/debounce.js create mode 100644 node_modules/lodash/deburr.js create mode 100644 node_modules/lodash/defaultTo.js create mode 100644 node_modules/lodash/defaults.js create mode 100644 node_modules/lodash/defaultsDeep.js create mode 100644 node_modules/lodash/defer.js create mode 100644 node_modules/lodash/delay.js create mode 100644 node_modules/lodash/difference.js create mode 100644 node_modules/lodash/differenceBy.js create mode 100644 node_modules/lodash/differenceWith.js create mode 100644 node_modules/lodash/divide.js create mode 100644 node_modules/lodash/drop.js create mode 100644 node_modules/lodash/dropRight.js create mode 100644 node_modules/lodash/dropRightWhile.js create mode 100644 node_modules/lodash/dropWhile.js create mode 100644 node_modules/lodash/each.js create mode 100644 node_modules/lodash/eachRight.js create mode 100644 node_modules/lodash/endsWith.js create mode 100644 node_modules/lodash/entries.js create mode 100644 node_modules/lodash/entriesIn.js create mode 100644 node_modules/lodash/eq.js create mode 100644 node_modules/lodash/escape.js create mode 100644 node_modules/lodash/escapeRegExp.js create mode 100644 node_modules/lodash/every.js create mode 100644 node_modules/lodash/extend.js create mode 100644 node_modules/lodash/extendWith.js create mode 100644 node_modules/lodash/fill.js create mode 100644 node_modules/lodash/filter.js create mode 100644 node_modules/lodash/find.js create mode 100644 node_modules/lodash/findIndex.js create mode 100644 node_modules/lodash/findKey.js create mode 100644 node_modules/lodash/findLast.js create mode 100644 node_modules/lodash/findLastIndex.js create mode 100644 node_modules/lodash/findLastKey.js create mode 100644 node_modules/lodash/first.js create mode 100644 node_modules/lodash/flatMap.js create mode 100644 node_modules/lodash/flatMapDeep.js create mode 100644 node_modules/lodash/flatMapDepth.js create mode 100644 node_modules/lodash/flatten.js create mode 100644 node_modules/lodash/flattenDeep.js create mode 100644 node_modules/lodash/flattenDepth.js create mode 100644 node_modules/lodash/flip.js create mode 100644 node_modules/lodash/floor.js create mode 100644 node_modules/lodash/flow.js create mode 100644 node_modules/lodash/flowRight.js create mode 100644 node_modules/lodash/forEach.js create mode 100644 node_modules/lodash/forEachRight.js create mode 100644 node_modules/lodash/forIn.js create mode 100644 node_modules/lodash/forInRight.js create mode 100644 node_modules/lodash/forOwn.js create mode 100644 node_modules/lodash/forOwnRight.js create mode 100644 node_modules/lodash/fp.js create mode 100644 node_modules/lodash/fp/F.js create mode 100644 node_modules/lodash/fp/T.js create mode 100644 node_modules/lodash/fp/__.js create mode 100644 node_modules/lodash/fp/_baseConvert.js create mode 100644 node_modules/lodash/fp/_convertBrowser.js create mode 100644 node_modules/lodash/fp/_falseOptions.js create mode 100644 node_modules/lodash/fp/_mapping.js create mode 100644 node_modules/lodash/fp/_util.js create mode 100644 node_modules/lodash/fp/add.js create mode 100644 node_modules/lodash/fp/after.js create mode 100644 node_modules/lodash/fp/all.js create mode 100644 node_modules/lodash/fp/allPass.js create mode 100644 node_modules/lodash/fp/always.js create mode 100644 node_modules/lodash/fp/any.js create mode 100644 node_modules/lodash/fp/anyPass.js create mode 100644 node_modules/lodash/fp/apply.js create mode 100644 node_modules/lodash/fp/array.js create mode 100644 node_modules/lodash/fp/ary.js create mode 100644 node_modules/lodash/fp/assign.js create mode 100644 node_modules/lodash/fp/assignAll.js create mode 100644 node_modules/lodash/fp/assignAllWith.js create mode 100644 node_modules/lodash/fp/assignIn.js create mode 100644 node_modules/lodash/fp/assignInAll.js create mode 100644 node_modules/lodash/fp/assignInAllWith.js create mode 100644 node_modules/lodash/fp/assignInWith.js create mode 100644 node_modules/lodash/fp/assignWith.js create mode 100644 node_modules/lodash/fp/assoc.js create mode 100644 node_modules/lodash/fp/assocPath.js create mode 100644 node_modules/lodash/fp/at.js create mode 100644 node_modules/lodash/fp/attempt.js create mode 100644 node_modules/lodash/fp/before.js create mode 100644 node_modules/lodash/fp/bind.js create mode 100644 node_modules/lodash/fp/bindAll.js create mode 100644 node_modules/lodash/fp/bindKey.js create mode 100644 node_modules/lodash/fp/camelCase.js create mode 100644 node_modules/lodash/fp/capitalize.js create mode 100644 node_modules/lodash/fp/castArray.js create mode 100644 node_modules/lodash/fp/ceil.js create mode 100644 node_modules/lodash/fp/chain.js create mode 100644 node_modules/lodash/fp/chunk.js create mode 100644 node_modules/lodash/fp/clamp.js create mode 100644 node_modules/lodash/fp/clone.js create mode 100644 node_modules/lodash/fp/cloneDeep.js create mode 100644 node_modules/lodash/fp/cloneDeepWith.js create mode 100644 node_modules/lodash/fp/cloneWith.js create mode 100644 node_modules/lodash/fp/collection.js create mode 100644 node_modules/lodash/fp/commit.js create mode 100644 node_modules/lodash/fp/compact.js create mode 100644 node_modules/lodash/fp/complement.js create mode 100644 node_modules/lodash/fp/compose.js create mode 100644 node_modules/lodash/fp/concat.js create mode 100644 node_modules/lodash/fp/cond.js create mode 100644 node_modules/lodash/fp/conforms.js create mode 100644 node_modules/lodash/fp/conformsTo.js create mode 100644 node_modules/lodash/fp/constant.js create mode 100644 node_modules/lodash/fp/contains.js create mode 100644 node_modules/lodash/fp/convert.js create mode 100644 node_modules/lodash/fp/countBy.js create mode 100644 node_modules/lodash/fp/create.js create mode 100644 node_modules/lodash/fp/curry.js create mode 100644 node_modules/lodash/fp/curryN.js create mode 100644 node_modules/lodash/fp/curryRight.js create mode 100644 node_modules/lodash/fp/curryRightN.js create mode 100644 node_modules/lodash/fp/date.js create mode 100644 node_modules/lodash/fp/debounce.js create mode 100644 node_modules/lodash/fp/deburr.js create mode 100644 node_modules/lodash/fp/defaultTo.js create mode 100644 node_modules/lodash/fp/defaults.js create mode 100644 node_modules/lodash/fp/defaultsAll.js create mode 100644 node_modules/lodash/fp/defaultsDeep.js create mode 100644 node_modules/lodash/fp/defaultsDeepAll.js create mode 100644 node_modules/lodash/fp/defer.js create mode 100644 node_modules/lodash/fp/delay.js create mode 100644 node_modules/lodash/fp/difference.js create mode 100644 node_modules/lodash/fp/differenceBy.js create mode 100644 node_modules/lodash/fp/differenceWith.js create mode 100644 node_modules/lodash/fp/dissoc.js create mode 100644 node_modules/lodash/fp/dissocPath.js create mode 100644 node_modules/lodash/fp/divide.js create mode 100644 node_modules/lodash/fp/drop.js create mode 100644 node_modules/lodash/fp/dropLast.js create mode 100644 node_modules/lodash/fp/dropLastWhile.js create mode 100644 node_modules/lodash/fp/dropRight.js create mode 100644 node_modules/lodash/fp/dropRightWhile.js create mode 100644 node_modules/lodash/fp/dropWhile.js create mode 100644 node_modules/lodash/fp/each.js create mode 100644 node_modules/lodash/fp/eachRight.js create mode 100644 node_modules/lodash/fp/endsWith.js create mode 100644 node_modules/lodash/fp/entries.js create mode 100644 node_modules/lodash/fp/entriesIn.js create mode 100644 node_modules/lodash/fp/eq.js create mode 100644 node_modules/lodash/fp/equals.js create mode 100644 node_modules/lodash/fp/escape.js create mode 100644 node_modules/lodash/fp/escapeRegExp.js create mode 100644 node_modules/lodash/fp/every.js create mode 100644 node_modules/lodash/fp/extend.js create mode 100644 node_modules/lodash/fp/extendAll.js create mode 100644 node_modules/lodash/fp/extendAllWith.js create mode 100644 node_modules/lodash/fp/extendWith.js create mode 100644 node_modules/lodash/fp/fill.js create mode 100644 node_modules/lodash/fp/filter.js create mode 100644 node_modules/lodash/fp/find.js create mode 100644 node_modules/lodash/fp/findFrom.js create mode 100644 node_modules/lodash/fp/findIndex.js create mode 100644 node_modules/lodash/fp/findIndexFrom.js create mode 100644 node_modules/lodash/fp/findKey.js create mode 100644 node_modules/lodash/fp/findLast.js create mode 100644 node_modules/lodash/fp/findLastFrom.js create mode 100644 node_modules/lodash/fp/findLastIndex.js create mode 100644 node_modules/lodash/fp/findLastIndexFrom.js create mode 100644 node_modules/lodash/fp/findLastKey.js create mode 100644 node_modules/lodash/fp/first.js create mode 100644 node_modules/lodash/fp/flatMap.js create mode 100644 node_modules/lodash/fp/flatMapDeep.js create mode 100644 node_modules/lodash/fp/flatMapDepth.js create mode 100644 node_modules/lodash/fp/flatten.js create mode 100644 node_modules/lodash/fp/flattenDeep.js create mode 100644 node_modules/lodash/fp/flattenDepth.js create mode 100644 node_modules/lodash/fp/flip.js create mode 100644 node_modules/lodash/fp/floor.js create mode 100644 node_modules/lodash/fp/flow.js create mode 100644 node_modules/lodash/fp/flowRight.js create mode 100644 node_modules/lodash/fp/forEach.js create mode 100644 node_modules/lodash/fp/forEachRight.js create mode 100644 node_modules/lodash/fp/forIn.js create mode 100644 node_modules/lodash/fp/forInRight.js create mode 100644 node_modules/lodash/fp/forOwn.js create mode 100644 node_modules/lodash/fp/forOwnRight.js create mode 100644 node_modules/lodash/fp/fromPairs.js create mode 100644 node_modules/lodash/fp/function.js create mode 100644 node_modules/lodash/fp/functions.js create mode 100644 node_modules/lodash/fp/functionsIn.js create mode 100644 node_modules/lodash/fp/get.js create mode 100644 node_modules/lodash/fp/getOr.js create mode 100644 node_modules/lodash/fp/groupBy.js create mode 100644 node_modules/lodash/fp/gt.js create mode 100644 node_modules/lodash/fp/gte.js create mode 100644 node_modules/lodash/fp/has.js create mode 100644 node_modules/lodash/fp/hasIn.js create mode 100644 node_modules/lodash/fp/head.js create mode 100644 node_modules/lodash/fp/identical.js create mode 100644 node_modules/lodash/fp/identity.js create mode 100644 node_modules/lodash/fp/inRange.js create mode 100644 node_modules/lodash/fp/includes.js create mode 100644 node_modules/lodash/fp/includesFrom.js create mode 100644 node_modules/lodash/fp/indexBy.js create mode 100644 node_modules/lodash/fp/indexOf.js create mode 100644 node_modules/lodash/fp/indexOfFrom.js create mode 100644 node_modules/lodash/fp/init.js create mode 100644 node_modules/lodash/fp/initial.js create mode 100644 node_modules/lodash/fp/intersection.js create mode 100644 node_modules/lodash/fp/intersectionBy.js create mode 100644 node_modules/lodash/fp/intersectionWith.js create mode 100644 node_modules/lodash/fp/invert.js create mode 100644 node_modules/lodash/fp/invertBy.js create mode 100644 node_modules/lodash/fp/invertObj.js create mode 100644 node_modules/lodash/fp/invoke.js create mode 100644 node_modules/lodash/fp/invokeArgs.js create mode 100644 node_modules/lodash/fp/invokeArgsMap.js create mode 100644 node_modules/lodash/fp/invokeMap.js create mode 100644 node_modules/lodash/fp/isArguments.js create mode 100644 node_modules/lodash/fp/isArray.js create mode 100644 node_modules/lodash/fp/isArrayBuffer.js create mode 100644 node_modules/lodash/fp/isArrayLike.js create mode 100644 node_modules/lodash/fp/isArrayLikeObject.js create mode 100644 node_modules/lodash/fp/isBoolean.js create mode 100644 node_modules/lodash/fp/isBuffer.js create mode 100644 node_modules/lodash/fp/isDate.js create mode 100644 node_modules/lodash/fp/isElement.js create mode 100644 node_modules/lodash/fp/isEmpty.js create mode 100644 node_modules/lodash/fp/isEqual.js create mode 100644 node_modules/lodash/fp/isEqualWith.js create mode 100644 node_modules/lodash/fp/isError.js create mode 100644 node_modules/lodash/fp/isFinite.js create mode 100644 node_modules/lodash/fp/isFunction.js create mode 100644 node_modules/lodash/fp/isInteger.js create mode 100644 node_modules/lodash/fp/isLength.js create mode 100644 node_modules/lodash/fp/isMap.js create mode 100644 node_modules/lodash/fp/isMatch.js create mode 100644 node_modules/lodash/fp/isMatchWith.js create mode 100644 node_modules/lodash/fp/isNaN.js create mode 100644 node_modules/lodash/fp/isNative.js create mode 100644 node_modules/lodash/fp/isNil.js create mode 100644 node_modules/lodash/fp/isNull.js create mode 100644 node_modules/lodash/fp/isNumber.js create mode 100644 node_modules/lodash/fp/isObject.js create mode 100644 node_modules/lodash/fp/isObjectLike.js create mode 100644 node_modules/lodash/fp/isPlainObject.js create mode 100644 node_modules/lodash/fp/isRegExp.js create mode 100644 node_modules/lodash/fp/isSafeInteger.js create mode 100644 node_modules/lodash/fp/isSet.js create mode 100644 node_modules/lodash/fp/isString.js create mode 100644 node_modules/lodash/fp/isSymbol.js create mode 100644 node_modules/lodash/fp/isTypedArray.js create mode 100644 node_modules/lodash/fp/isUndefined.js create mode 100644 node_modules/lodash/fp/isWeakMap.js create mode 100644 node_modules/lodash/fp/isWeakSet.js create mode 100644 node_modules/lodash/fp/iteratee.js create mode 100644 node_modules/lodash/fp/join.js create mode 100644 node_modules/lodash/fp/juxt.js create mode 100644 node_modules/lodash/fp/kebabCase.js create mode 100644 node_modules/lodash/fp/keyBy.js create mode 100644 node_modules/lodash/fp/keys.js create mode 100644 node_modules/lodash/fp/keysIn.js create mode 100644 node_modules/lodash/fp/lang.js create mode 100644 node_modules/lodash/fp/last.js create mode 100644 node_modules/lodash/fp/lastIndexOf.js create mode 100644 node_modules/lodash/fp/lastIndexOfFrom.js create mode 100644 node_modules/lodash/fp/lowerCase.js create mode 100644 node_modules/lodash/fp/lowerFirst.js create mode 100644 node_modules/lodash/fp/lt.js create mode 100644 node_modules/lodash/fp/lte.js create mode 100644 node_modules/lodash/fp/map.js create mode 100644 node_modules/lodash/fp/mapKeys.js create mode 100644 node_modules/lodash/fp/mapValues.js create mode 100644 node_modules/lodash/fp/matches.js create mode 100644 node_modules/lodash/fp/matchesProperty.js create mode 100644 node_modules/lodash/fp/math.js create mode 100644 node_modules/lodash/fp/max.js create mode 100644 node_modules/lodash/fp/maxBy.js create mode 100644 node_modules/lodash/fp/mean.js create mode 100644 node_modules/lodash/fp/meanBy.js create mode 100644 node_modules/lodash/fp/memoize.js create mode 100644 node_modules/lodash/fp/merge.js create mode 100644 node_modules/lodash/fp/mergeAll.js create mode 100644 node_modules/lodash/fp/mergeAllWith.js create mode 100644 node_modules/lodash/fp/mergeWith.js create mode 100644 node_modules/lodash/fp/method.js create mode 100644 node_modules/lodash/fp/methodOf.js create mode 100644 node_modules/lodash/fp/min.js create mode 100644 node_modules/lodash/fp/minBy.js create mode 100644 node_modules/lodash/fp/mixin.js create mode 100644 node_modules/lodash/fp/multiply.js create mode 100644 node_modules/lodash/fp/nAry.js create mode 100644 node_modules/lodash/fp/negate.js create mode 100644 node_modules/lodash/fp/next.js create mode 100644 node_modules/lodash/fp/noop.js create mode 100644 node_modules/lodash/fp/now.js create mode 100644 node_modules/lodash/fp/nth.js create mode 100644 node_modules/lodash/fp/nthArg.js create mode 100644 node_modules/lodash/fp/number.js create mode 100644 node_modules/lodash/fp/object.js create mode 100644 node_modules/lodash/fp/omit.js create mode 100644 node_modules/lodash/fp/omitAll.js create mode 100644 node_modules/lodash/fp/omitBy.js create mode 100644 node_modules/lodash/fp/once.js create mode 100644 node_modules/lodash/fp/orderBy.js create mode 100644 node_modules/lodash/fp/over.js create mode 100644 node_modules/lodash/fp/overArgs.js create mode 100644 node_modules/lodash/fp/overEvery.js create mode 100644 node_modules/lodash/fp/overSome.js create mode 100644 node_modules/lodash/fp/pad.js create mode 100644 node_modules/lodash/fp/padChars.js create mode 100644 node_modules/lodash/fp/padCharsEnd.js create mode 100644 node_modules/lodash/fp/padCharsStart.js create mode 100644 node_modules/lodash/fp/padEnd.js create mode 100644 node_modules/lodash/fp/padStart.js create mode 100644 node_modules/lodash/fp/parseInt.js create mode 100644 node_modules/lodash/fp/partial.js create mode 100644 node_modules/lodash/fp/partialRight.js create mode 100644 node_modules/lodash/fp/partition.js create mode 100644 node_modules/lodash/fp/path.js create mode 100644 node_modules/lodash/fp/pathEq.js create mode 100644 node_modules/lodash/fp/pathOr.js create mode 100644 node_modules/lodash/fp/paths.js create mode 100644 node_modules/lodash/fp/pick.js create mode 100644 node_modules/lodash/fp/pickAll.js create mode 100644 node_modules/lodash/fp/pickBy.js create mode 100644 node_modules/lodash/fp/pipe.js create mode 100644 node_modules/lodash/fp/placeholder.js create mode 100644 node_modules/lodash/fp/plant.js create mode 100644 node_modules/lodash/fp/pluck.js create mode 100644 node_modules/lodash/fp/prop.js create mode 100644 node_modules/lodash/fp/propEq.js create mode 100644 node_modules/lodash/fp/propOr.js create mode 100644 node_modules/lodash/fp/property.js create mode 100644 node_modules/lodash/fp/propertyOf.js create mode 100644 node_modules/lodash/fp/props.js create mode 100644 node_modules/lodash/fp/pull.js create mode 100644 node_modules/lodash/fp/pullAll.js create mode 100644 node_modules/lodash/fp/pullAllBy.js create mode 100644 node_modules/lodash/fp/pullAllWith.js create mode 100644 node_modules/lodash/fp/pullAt.js create mode 100644 node_modules/lodash/fp/random.js create mode 100644 node_modules/lodash/fp/range.js create mode 100644 node_modules/lodash/fp/rangeRight.js create mode 100644 node_modules/lodash/fp/rangeStep.js create mode 100644 node_modules/lodash/fp/rangeStepRight.js create mode 100644 node_modules/lodash/fp/rearg.js create mode 100644 node_modules/lodash/fp/reduce.js create mode 100644 node_modules/lodash/fp/reduceRight.js create mode 100644 node_modules/lodash/fp/reject.js create mode 100644 node_modules/lodash/fp/remove.js create mode 100644 node_modules/lodash/fp/repeat.js create mode 100644 node_modules/lodash/fp/replace.js create mode 100644 node_modules/lodash/fp/rest.js create mode 100644 node_modules/lodash/fp/restFrom.js create mode 100644 node_modules/lodash/fp/result.js create mode 100644 node_modules/lodash/fp/reverse.js create mode 100644 node_modules/lodash/fp/round.js create mode 100644 node_modules/lodash/fp/sample.js create mode 100644 node_modules/lodash/fp/sampleSize.js create mode 100644 node_modules/lodash/fp/seq.js create mode 100644 node_modules/lodash/fp/set.js create mode 100644 node_modules/lodash/fp/setWith.js create mode 100644 node_modules/lodash/fp/shuffle.js create mode 100644 node_modules/lodash/fp/size.js create mode 100644 node_modules/lodash/fp/slice.js create mode 100644 node_modules/lodash/fp/snakeCase.js create mode 100644 node_modules/lodash/fp/some.js create mode 100644 node_modules/lodash/fp/sortBy.js create mode 100644 node_modules/lodash/fp/sortedIndex.js create mode 100644 node_modules/lodash/fp/sortedIndexBy.js create mode 100644 node_modules/lodash/fp/sortedIndexOf.js create mode 100644 node_modules/lodash/fp/sortedLastIndex.js create mode 100644 node_modules/lodash/fp/sortedLastIndexBy.js create mode 100644 node_modules/lodash/fp/sortedLastIndexOf.js create mode 100644 node_modules/lodash/fp/sortedUniq.js create mode 100644 node_modules/lodash/fp/sortedUniqBy.js create mode 100644 node_modules/lodash/fp/split.js create mode 100644 node_modules/lodash/fp/spread.js create mode 100644 node_modules/lodash/fp/spreadFrom.js create mode 100644 node_modules/lodash/fp/startCase.js create mode 100644 node_modules/lodash/fp/startsWith.js create mode 100644 node_modules/lodash/fp/string.js create mode 100644 node_modules/lodash/fp/stubArray.js create mode 100644 node_modules/lodash/fp/stubFalse.js create mode 100644 node_modules/lodash/fp/stubObject.js create mode 100644 node_modules/lodash/fp/stubString.js create mode 100644 node_modules/lodash/fp/stubTrue.js create mode 100644 node_modules/lodash/fp/subtract.js create mode 100644 node_modules/lodash/fp/sum.js create mode 100644 node_modules/lodash/fp/sumBy.js create mode 100644 node_modules/lodash/fp/symmetricDifference.js create mode 100644 node_modules/lodash/fp/symmetricDifferenceBy.js create mode 100644 node_modules/lodash/fp/symmetricDifferenceWith.js create mode 100644 node_modules/lodash/fp/tail.js create mode 100644 node_modules/lodash/fp/take.js create mode 100644 node_modules/lodash/fp/takeLast.js create mode 100644 node_modules/lodash/fp/takeLastWhile.js create mode 100644 node_modules/lodash/fp/takeRight.js create mode 100644 node_modules/lodash/fp/takeRightWhile.js create mode 100644 node_modules/lodash/fp/takeWhile.js create mode 100644 node_modules/lodash/fp/tap.js create mode 100644 node_modules/lodash/fp/template.js create mode 100644 node_modules/lodash/fp/templateSettings.js create mode 100644 node_modules/lodash/fp/throttle.js create mode 100644 node_modules/lodash/fp/thru.js create mode 100644 node_modules/lodash/fp/times.js create mode 100644 node_modules/lodash/fp/toArray.js create mode 100644 node_modules/lodash/fp/toFinite.js create mode 100644 node_modules/lodash/fp/toInteger.js create mode 100644 node_modules/lodash/fp/toIterator.js create mode 100644 node_modules/lodash/fp/toJSON.js create mode 100644 node_modules/lodash/fp/toLength.js create mode 100644 node_modules/lodash/fp/toLower.js create mode 100644 node_modules/lodash/fp/toNumber.js create mode 100644 node_modules/lodash/fp/toPairs.js create mode 100644 node_modules/lodash/fp/toPairsIn.js create mode 100644 node_modules/lodash/fp/toPath.js create mode 100644 node_modules/lodash/fp/toPlainObject.js create mode 100644 node_modules/lodash/fp/toSafeInteger.js create mode 100644 node_modules/lodash/fp/toString.js create mode 100644 node_modules/lodash/fp/toUpper.js create mode 100644 node_modules/lodash/fp/transform.js create mode 100644 node_modules/lodash/fp/trim.js create mode 100644 node_modules/lodash/fp/trimChars.js create mode 100644 node_modules/lodash/fp/trimCharsEnd.js create mode 100644 node_modules/lodash/fp/trimCharsStart.js create mode 100644 node_modules/lodash/fp/trimEnd.js create mode 100644 node_modules/lodash/fp/trimStart.js create mode 100644 node_modules/lodash/fp/truncate.js create mode 100644 node_modules/lodash/fp/unapply.js create mode 100644 node_modules/lodash/fp/unary.js create mode 100644 node_modules/lodash/fp/unescape.js create mode 100644 node_modules/lodash/fp/union.js create mode 100644 node_modules/lodash/fp/unionBy.js create mode 100644 node_modules/lodash/fp/unionWith.js create mode 100644 node_modules/lodash/fp/uniq.js create mode 100644 node_modules/lodash/fp/uniqBy.js create mode 100644 node_modules/lodash/fp/uniqWith.js create mode 100644 node_modules/lodash/fp/uniqueId.js create mode 100644 node_modules/lodash/fp/unnest.js create mode 100644 node_modules/lodash/fp/unset.js create mode 100644 node_modules/lodash/fp/unzip.js create mode 100644 node_modules/lodash/fp/unzipWith.js create mode 100644 node_modules/lodash/fp/update.js create mode 100644 node_modules/lodash/fp/updateWith.js create mode 100644 node_modules/lodash/fp/upperCase.js create mode 100644 node_modules/lodash/fp/upperFirst.js create mode 100644 node_modules/lodash/fp/useWith.js create mode 100644 node_modules/lodash/fp/util.js create mode 100644 node_modules/lodash/fp/value.js create mode 100644 node_modules/lodash/fp/valueOf.js create mode 100644 node_modules/lodash/fp/values.js create mode 100644 node_modules/lodash/fp/valuesIn.js create mode 100644 node_modules/lodash/fp/where.js create mode 100644 node_modules/lodash/fp/whereEq.js create mode 100644 node_modules/lodash/fp/without.js create mode 100644 node_modules/lodash/fp/words.js create mode 100644 node_modules/lodash/fp/wrap.js create mode 100644 node_modules/lodash/fp/wrapperAt.js create mode 100644 node_modules/lodash/fp/wrapperChain.js create mode 100644 node_modules/lodash/fp/wrapperLodash.js create mode 100644 node_modules/lodash/fp/wrapperReverse.js create mode 100644 node_modules/lodash/fp/wrapperValue.js create mode 100644 node_modules/lodash/fp/xor.js create mode 100644 node_modules/lodash/fp/xorBy.js create mode 100644 node_modules/lodash/fp/xorWith.js create mode 100644 node_modules/lodash/fp/zip.js create mode 100644 node_modules/lodash/fp/zipAll.js create mode 100644 node_modules/lodash/fp/zipObj.js create mode 100644 node_modules/lodash/fp/zipObject.js create mode 100644 node_modules/lodash/fp/zipObjectDeep.js create mode 100644 node_modules/lodash/fp/zipWith.js create mode 100644 node_modules/lodash/fromPairs.js create mode 100644 node_modules/lodash/function.js create mode 100644 node_modules/lodash/functions.js create mode 100644 node_modules/lodash/functionsIn.js create mode 100644 node_modules/lodash/get.js create mode 100644 node_modules/lodash/groupBy.js create mode 100644 node_modules/lodash/gt.js create mode 100644 node_modules/lodash/gte.js create mode 100644 node_modules/lodash/has.js create mode 100644 node_modules/lodash/hasIn.js create mode 100644 node_modules/lodash/head.js create mode 100644 node_modules/lodash/identity.js create mode 100644 node_modules/lodash/inRange.js create mode 100644 node_modules/lodash/includes.js create mode 100644 node_modules/lodash/index.js create mode 100644 node_modules/lodash/indexOf.js create mode 100644 node_modules/lodash/initial.js create mode 100644 node_modules/lodash/intersection.js create mode 100644 node_modules/lodash/intersectionBy.js create mode 100644 node_modules/lodash/intersectionWith.js create mode 100644 node_modules/lodash/invert.js create mode 100644 node_modules/lodash/invertBy.js create mode 100644 node_modules/lodash/invoke.js create mode 100644 node_modules/lodash/invokeMap.js create mode 100644 node_modules/lodash/isArguments.js create mode 100644 node_modules/lodash/isArray.js create mode 100644 node_modules/lodash/isArrayBuffer.js create mode 100644 node_modules/lodash/isArrayLike.js create mode 100644 node_modules/lodash/isArrayLikeObject.js create mode 100644 node_modules/lodash/isBoolean.js create mode 100644 node_modules/lodash/isBuffer.js create mode 100644 node_modules/lodash/isDate.js create mode 100644 node_modules/lodash/isElement.js create mode 100644 node_modules/lodash/isEmpty.js create mode 100644 node_modules/lodash/isEqual.js create mode 100644 node_modules/lodash/isEqualWith.js create mode 100644 node_modules/lodash/isError.js create mode 100644 node_modules/lodash/isFinite.js create mode 100644 node_modules/lodash/isFunction.js create mode 100644 node_modules/lodash/isInteger.js create mode 100644 node_modules/lodash/isLength.js create mode 100644 node_modules/lodash/isMap.js create mode 100644 node_modules/lodash/isMatch.js create mode 100644 node_modules/lodash/isMatchWith.js create mode 100644 node_modules/lodash/isNaN.js create mode 100644 node_modules/lodash/isNative.js create mode 100644 node_modules/lodash/isNil.js create mode 100644 node_modules/lodash/isNull.js create mode 100644 node_modules/lodash/isNumber.js create mode 100644 node_modules/lodash/isObject.js create mode 100644 node_modules/lodash/isObjectLike.js create mode 100644 node_modules/lodash/isPlainObject.js create mode 100644 node_modules/lodash/isRegExp.js create mode 100644 node_modules/lodash/isSafeInteger.js create mode 100644 node_modules/lodash/isSet.js create mode 100644 node_modules/lodash/isString.js create mode 100644 node_modules/lodash/isSymbol.js create mode 100644 node_modules/lodash/isTypedArray.js create mode 100644 node_modules/lodash/isUndefined.js create mode 100644 node_modules/lodash/isWeakMap.js create mode 100644 node_modules/lodash/isWeakSet.js create mode 100644 node_modules/lodash/iteratee.js create mode 100644 node_modules/lodash/join.js create mode 100644 node_modules/lodash/kebabCase.js create mode 100644 node_modules/lodash/keyBy.js create mode 100644 node_modules/lodash/keys.js create mode 100644 node_modules/lodash/keysIn.js create mode 100644 node_modules/lodash/lang.js create mode 100644 node_modules/lodash/last.js create mode 100644 node_modules/lodash/lastIndexOf.js create mode 100644 node_modules/lodash/lodash.js create mode 100644 node_modules/lodash/lodash.min.js create mode 100644 node_modules/lodash/lowerCase.js create mode 100644 node_modules/lodash/lowerFirst.js create mode 100644 node_modules/lodash/lt.js create mode 100644 node_modules/lodash/lte.js create mode 100644 node_modules/lodash/map.js create mode 100644 node_modules/lodash/mapKeys.js create mode 100644 node_modules/lodash/mapValues.js create mode 100644 node_modules/lodash/matches.js create mode 100644 node_modules/lodash/matchesProperty.js create mode 100644 node_modules/lodash/math.js create mode 100644 node_modules/lodash/max.js create mode 100644 node_modules/lodash/maxBy.js create mode 100644 node_modules/lodash/mean.js create mode 100644 node_modules/lodash/meanBy.js create mode 100644 node_modules/lodash/memoize.js create mode 100644 node_modules/lodash/merge.js create mode 100644 node_modules/lodash/mergeWith.js create mode 100644 node_modules/lodash/method.js create mode 100644 node_modules/lodash/methodOf.js create mode 100644 node_modules/lodash/min.js create mode 100644 node_modules/lodash/minBy.js create mode 100644 node_modules/lodash/mixin.js create mode 100644 node_modules/lodash/multiply.js create mode 100644 node_modules/lodash/negate.js create mode 100644 node_modules/lodash/next.js create mode 100644 node_modules/lodash/noop.js create mode 100644 node_modules/lodash/now.js create mode 100644 node_modules/lodash/nth.js create mode 100644 node_modules/lodash/nthArg.js create mode 100644 node_modules/lodash/number.js create mode 100644 node_modules/lodash/object.js create mode 100644 node_modules/lodash/omit.js create mode 100644 node_modules/lodash/omitBy.js create mode 100644 node_modules/lodash/once.js create mode 100644 node_modules/lodash/orderBy.js create mode 100644 node_modules/lodash/over.js create mode 100644 node_modules/lodash/overArgs.js create mode 100644 node_modules/lodash/overEvery.js create mode 100644 node_modules/lodash/overSome.js create mode 100644 node_modules/lodash/package.json create mode 100644 node_modules/lodash/pad.js create mode 100644 node_modules/lodash/padEnd.js create mode 100644 node_modules/lodash/padStart.js create mode 100644 node_modules/lodash/parseInt.js create mode 100644 node_modules/lodash/partial.js create mode 100644 node_modules/lodash/partialRight.js create mode 100644 node_modules/lodash/partition.js create mode 100644 node_modules/lodash/pick.js create mode 100644 node_modules/lodash/pickBy.js create mode 100644 node_modules/lodash/plant.js create mode 100644 node_modules/lodash/property.js create mode 100644 node_modules/lodash/propertyOf.js create mode 100644 node_modules/lodash/pull.js create mode 100644 node_modules/lodash/pullAll.js create mode 100644 node_modules/lodash/pullAllBy.js create mode 100644 node_modules/lodash/pullAllWith.js create mode 100644 node_modules/lodash/pullAt.js create mode 100644 node_modules/lodash/random.js create mode 100644 node_modules/lodash/range.js create mode 100644 node_modules/lodash/rangeRight.js create mode 100644 node_modules/lodash/rearg.js create mode 100644 node_modules/lodash/reduce.js create mode 100644 node_modules/lodash/reduceRight.js create mode 100644 node_modules/lodash/reject.js create mode 100644 node_modules/lodash/remove.js create mode 100644 node_modules/lodash/repeat.js create mode 100644 node_modules/lodash/replace.js create mode 100644 node_modules/lodash/rest.js create mode 100644 node_modules/lodash/result.js create mode 100644 node_modules/lodash/reverse.js create mode 100644 node_modules/lodash/round.js create mode 100644 node_modules/lodash/sample.js create mode 100644 node_modules/lodash/sampleSize.js create mode 100644 node_modules/lodash/seq.js create mode 100644 node_modules/lodash/set.js create mode 100644 node_modules/lodash/setWith.js create mode 100644 node_modules/lodash/shuffle.js create mode 100644 node_modules/lodash/size.js create mode 100644 node_modules/lodash/slice.js create mode 100644 node_modules/lodash/snakeCase.js create mode 100644 node_modules/lodash/some.js create mode 100644 node_modules/lodash/sortBy.js create mode 100644 node_modules/lodash/sortedIndex.js create mode 100644 node_modules/lodash/sortedIndexBy.js create mode 100644 node_modules/lodash/sortedIndexOf.js create mode 100644 node_modules/lodash/sortedLastIndex.js create mode 100644 node_modules/lodash/sortedLastIndexBy.js create mode 100644 node_modules/lodash/sortedLastIndexOf.js create mode 100644 node_modules/lodash/sortedUniq.js create mode 100644 node_modules/lodash/sortedUniqBy.js create mode 100644 node_modules/lodash/split.js create mode 100644 node_modules/lodash/spread.js create mode 100644 node_modules/lodash/startCase.js create mode 100644 node_modules/lodash/startsWith.js create mode 100644 node_modules/lodash/string.js create mode 100644 node_modules/lodash/stubArray.js create mode 100644 node_modules/lodash/stubFalse.js create mode 100644 node_modules/lodash/stubObject.js create mode 100644 node_modules/lodash/stubString.js create mode 100644 node_modules/lodash/stubTrue.js create mode 100644 node_modules/lodash/subtract.js create mode 100644 node_modules/lodash/sum.js create mode 100644 node_modules/lodash/sumBy.js create mode 100644 node_modules/lodash/tail.js create mode 100644 node_modules/lodash/take.js create mode 100644 node_modules/lodash/takeRight.js create mode 100644 node_modules/lodash/takeRightWhile.js create mode 100644 node_modules/lodash/takeWhile.js create mode 100644 node_modules/lodash/tap.js create mode 100644 node_modules/lodash/template.js create mode 100644 node_modules/lodash/templateSettings.js create mode 100644 node_modules/lodash/throttle.js create mode 100644 node_modules/lodash/thru.js create mode 100644 node_modules/lodash/times.js create mode 100644 node_modules/lodash/toArray.js create mode 100644 node_modules/lodash/toFinite.js create mode 100644 node_modules/lodash/toInteger.js create mode 100644 node_modules/lodash/toIterator.js create mode 100644 node_modules/lodash/toJSON.js create mode 100644 node_modules/lodash/toLength.js create mode 100644 node_modules/lodash/toLower.js create mode 100644 node_modules/lodash/toNumber.js create mode 100644 node_modules/lodash/toPairs.js create mode 100644 node_modules/lodash/toPairsIn.js create mode 100644 node_modules/lodash/toPath.js create mode 100644 node_modules/lodash/toPlainObject.js create mode 100644 node_modules/lodash/toSafeInteger.js create mode 100644 node_modules/lodash/toString.js create mode 100644 node_modules/lodash/toUpper.js create mode 100644 node_modules/lodash/transform.js create mode 100644 node_modules/lodash/trim.js create mode 100644 node_modules/lodash/trimEnd.js create mode 100644 node_modules/lodash/trimStart.js create mode 100644 node_modules/lodash/truncate.js create mode 100644 node_modules/lodash/unary.js create mode 100644 node_modules/lodash/unescape.js create mode 100644 node_modules/lodash/union.js create mode 100644 node_modules/lodash/unionBy.js create mode 100644 node_modules/lodash/unionWith.js create mode 100644 node_modules/lodash/uniq.js create mode 100644 node_modules/lodash/uniqBy.js create mode 100644 node_modules/lodash/uniqWith.js create mode 100644 node_modules/lodash/uniqueId.js create mode 100644 node_modules/lodash/unset.js create mode 100644 node_modules/lodash/unzip.js create mode 100644 node_modules/lodash/unzipWith.js create mode 100644 node_modules/lodash/update.js create mode 100644 node_modules/lodash/updateWith.js create mode 100644 node_modules/lodash/upperCase.js create mode 100644 node_modules/lodash/upperFirst.js create mode 100644 node_modules/lodash/util.js create mode 100644 node_modules/lodash/value.js create mode 100644 node_modules/lodash/valueOf.js create mode 100644 node_modules/lodash/values.js create mode 100644 node_modules/lodash/valuesIn.js create mode 100644 node_modules/lodash/without.js create mode 100644 node_modules/lodash/words.js create mode 100644 node_modules/lodash/wrap.js create mode 100644 node_modules/lodash/wrapperAt.js create mode 100644 node_modules/lodash/wrapperChain.js create mode 100644 node_modules/lodash/wrapperLodash.js create mode 100644 node_modules/lodash/wrapperReverse.js create mode 100644 node_modules/lodash/wrapperValue.js create mode 100644 node_modules/lodash/xor.js create mode 100644 node_modules/lodash/xorBy.js create mode 100644 node_modules/lodash/xorWith.js create mode 100644 node_modules/lodash/zip.js create mode 100644 node_modules/lodash/zipObject.js create mode 100644 node_modules/lodash/zipObjectDeep.js create mode 100644 node_modules/lodash/zipWith.js create mode 100644 node_modules/magic-bytes.js/LICENSE create mode 100644 node_modules/magic-bytes.js/README.md create mode 100644 node_modules/magic-bytes.js/dist/index.d.ts create mode 100644 node_modules/magic-bytes.js/dist/index.d.ts.map create mode 100644 node_modules/magic-bytes.js/dist/index.js create mode 100644 node_modules/magic-bytes.js/dist/index.spec.d.ts create mode 100644 node_modules/magic-bytes.js/dist/index.spec.d.ts.map create mode 100644 node_modules/magic-bytes.js/dist/index.spec.js create mode 100644 node_modules/magic-bytes.js/dist/model/pattern-tree.d.ts create mode 100644 node_modules/magic-bytes.js/dist/model/pattern-tree.d.ts.map create mode 100644 node_modules/magic-bytes.js/dist/model/pattern-tree.js create mode 100644 node_modules/magic-bytes.js/dist/model/toHex.d.ts create mode 100644 node_modules/magic-bytes.js/dist/model/toHex.d.ts.map create mode 100644 node_modules/magic-bytes.js/dist/model/toHex.js create mode 100644 node_modules/magic-bytes.js/dist/model/tree.d.ts create mode 100644 node_modules/magic-bytes.js/dist/model/tree.d.ts.map create mode 100644 node_modules/magic-bytes.js/dist/model/tree.js create mode 100644 node_modules/magic-bytes.js/dist/model/tree.spec.d.ts create mode 100644 node_modules/magic-bytes.js/dist/model/tree.spec.d.ts.map create mode 100644 node_modules/magic-bytes.js/dist/model/tree.spec.js create mode 100644 node_modules/magic-bytes.js/package.json create mode 100644 node_modules/math-intrinsics/.eslintrc create mode 100644 node_modules/math-intrinsics/.github/FUNDING.yml create mode 100644 node_modules/math-intrinsics/CHANGELOG.md create mode 100644 node_modules/math-intrinsics/LICENSE create mode 100644 node_modules/math-intrinsics/README.md create mode 100644 node_modules/math-intrinsics/abs.d.ts create mode 100644 node_modules/math-intrinsics/abs.js create mode 100644 node_modules/math-intrinsics/constants/maxArrayLength.d.ts create mode 100644 node_modules/math-intrinsics/constants/maxArrayLength.js create mode 100644 node_modules/math-intrinsics/constants/maxSafeInteger.d.ts create mode 100644 node_modules/math-intrinsics/constants/maxSafeInteger.js create mode 100644 node_modules/math-intrinsics/constants/maxValue.d.ts create mode 100644 node_modules/math-intrinsics/constants/maxValue.js create mode 100644 node_modules/math-intrinsics/floor.d.ts create mode 100644 node_modules/math-intrinsics/floor.js create mode 100644 node_modules/math-intrinsics/isFinite.d.ts create mode 100644 node_modules/math-intrinsics/isFinite.js create mode 100644 node_modules/math-intrinsics/isInteger.d.ts create mode 100644 node_modules/math-intrinsics/isInteger.js create mode 100644 node_modules/math-intrinsics/isNaN.d.ts create mode 100644 node_modules/math-intrinsics/isNaN.js create mode 100644 node_modules/math-intrinsics/isNegativeZero.d.ts create mode 100644 node_modules/math-intrinsics/isNegativeZero.js create mode 100644 node_modules/math-intrinsics/max.d.ts create mode 100644 node_modules/math-intrinsics/max.js create mode 100644 node_modules/math-intrinsics/min.d.ts create mode 100644 node_modules/math-intrinsics/min.js create mode 100644 node_modules/math-intrinsics/mod.d.ts create mode 100644 node_modules/math-intrinsics/mod.js create mode 100644 node_modules/math-intrinsics/package.json create mode 100644 node_modules/math-intrinsics/pow.d.ts create mode 100644 node_modules/math-intrinsics/pow.js create mode 100644 node_modules/math-intrinsics/round.d.ts create mode 100644 node_modules/math-intrinsics/round.js create mode 100644 node_modules/math-intrinsics/sign.d.ts create mode 100644 node_modules/math-intrinsics/sign.js create mode 100644 node_modules/math-intrinsics/test/index.js create mode 100644 node_modules/math-intrinsics/tsconfig.json create mode 100644 node_modules/media-typer/HISTORY.md create mode 100644 node_modules/media-typer/LICENSE create mode 100644 node_modules/media-typer/README.md create mode 100644 node_modules/media-typer/index.js create mode 100644 node_modules/media-typer/package.json create mode 100644 node_modules/merge-descriptors/HISTORY.md create mode 100644 node_modules/merge-descriptors/LICENSE create mode 100644 node_modules/merge-descriptors/README.md create mode 100644 node_modules/merge-descriptors/index.js create mode 100644 node_modules/merge-descriptors/package.json create mode 100644 node_modules/methods/HISTORY.md create mode 100644 node_modules/methods/LICENSE create mode 100644 node_modules/methods/README.md create mode 100644 node_modules/methods/index.js create mode 100644 node_modules/methods/package.json create mode 100644 node_modules/mime-db/HISTORY.md create mode 100644 node_modules/mime-db/LICENSE create mode 100644 node_modules/mime-db/README.md create mode 100644 node_modules/mime-db/db.json create mode 100644 node_modules/mime-db/index.js create mode 100644 node_modules/mime-db/package.json create mode 100644 node_modules/mime-types/HISTORY.md create mode 100644 node_modules/mime-types/LICENSE create mode 100644 node_modules/mime-types/README.md create mode 100644 node_modules/mime-types/index.js create mode 100644 node_modules/mime-types/package.json create mode 100644 node_modules/mime/.npmignore create mode 100644 node_modules/mime/CHANGELOG.md create mode 100644 node_modules/mime/LICENSE create mode 100644 node_modules/mime/README.md create mode 100755 node_modules/mime/cli.js create mode 100644 node_modules/mime/mime.js create mode 100644 node_modules/mime/package.json create mode 100755 node_modules/mime/src/build.js create mode 100644 node_modules/mime/src/test.js create mode 100644 node_modules/mime/types.json create mode 100644 node_modules/ms/index.js create mode 100644 node_modules/ms/license.md create mode 100644 node_modules/ms/package.json create mode 100644 node_modules/ms/readme.md create mode 100644 node_modules/negotiator/HISTORY.md create mode 100644 node_modules/negotiator/LICENSE create mode 100644 node_modules/negotiator/README.md create mode 100644 node_modules/negotiator/index.js create mode 100644 node_modules/negotiator/lib/charset.js create mode 100644 node_modules/negotiator/lib/encoding.js create mode 100644 node_modules/negotiator/lib/language.js create mode 100644 node_modules/negotiator/lib/mediaType.js create mode 100644 node_modules/negotiator/package.json create mode 100644 node_modules/object-inspect/.eslintrc create mode 100644 node_modules/object-inspect/.github/FUNDING.yml create mode 100644 node_modules/object-inspect/.nycrc create mode 100644 node_modules/object-inspect/CHANGELOG.md create mode 100644 node_modules/object-inspect/LICENSE create mode 100644 node_modules/object-inspect/example/all.js create mode 100644 node_modules/object-inspect/example/circular.js create mode 100644 node_modules/object-inspect/example/fn.js create mode 100644 node_modules/object-inspect/example/inspect.js create mode 100644 node_modules/object-inspect/index.js create mode 100644 node_modules/object-inspect/package-support.json create mode 100644 node_modules/object-inspect/package.json create mode 100644 node_modules/object-inspect/readme.markdown create mode 100644 node_modules/object-inspect/test-core-js.js create mode 100644 node_modules/object-inspect/test/bigint.js create mode 100644 node_modules/object-inspect/test/browser/dom.js create mode 100644 node_modules/object-inspect/test/circular.js create mode 100644 node_modules/object-inspect/test/deep.js create mode 100644 node_modules/object-inspect/test/element.js create mode 100644 node_modules/object-inspect/test/err.js create mode 100644 node_modules/object-inspect/test/fakes.js create mode 100644 node_modules/object-inspect/test/fn.js create mode 100644 node_modules/object-inspect/test/global.js create mode 100644 node_modules/object-inspect/test/has.js create mode 100644 node_modules/object-inspect/test/holes.js create mode 100644 node_modules/object-inspect/test/indent-option.js create mode 100644 node_modules/object-inspect/test/inspect.js create mode 100644 node_modules/object-inspect/test/lowbyte.js create mode 100644 node_modules/object-inspect/test/number.js create mode 100644 node_modules/object-inspect/test/quoteStyle.js create mode 100644 node_modules/object-inspect/test/toStringTag.js create mode 100644 node_modules/object-inspect/test/undef.js create mode 100644 node_modules/object-inspect/test/values.js create mode 100644 node_modules/object-inspect/util.inspect.js create mode 100644 node_modules/on-finished/HISTORY.md create mode 100644 node_modules/on-finished/LICENSE create mode 100644 node_modules/on-finished/README.md create mode 100644 node_modules/on-finished/index.js create mode 100644 node_modules/on-finished/package.json create mode 100644 node_modules/parseurl/HISTORY.md create mode 100644 node_modules/parseurl/LICENSE create mode 100644 node_modules/parseurl/README.md create mode 100644 node_modules/parseurl/index.js create mode 100644 node_modules/parseurl/package.json create mode 100644 node_modules/path-to-regexp/LICENSE create mode 100644 node_modules/path-to-regexp/Readme.md create mode 100644 node_modules/path-to-regexp/index.js create mode 100644 node_modules/path-to-regexp/package.json create mode 100644 node_modules/proxy-addr/HISTORY.md create mode 100644 node_modules/proxy-addr/LICENSE create mode 100644 node_modules/proxy-addr/README.md create mode 100644 node_modules/proxy-addr/index.js create mode 100644 node_modules/proxy-addr/package.json create mode 100644 node_modules/qs/.editorconfig create mode 100644 node_modules/qs/.github/FUNDING.yml create mode 100644 node_modules/qs/.github/SECURITY.md create mode 100644 node_modules/qs/.github/THREAT_MODEL.md create mode 100644 node_modules/qs/.nycrc create mode 100644 node_modules/qs/CHANGELOG.md create mode 100644 node_modules/qs/LICENSE.md create mode 100644 node_modules/qs/README.md create mode 100644 node_modules/qs/dist/qs.js create mode 100644 node_modules/qs/eslint.config.mjs create mode 100644 node_modules/qs/lib/formats.js create mode 100644 node_modules/qs/lib/index.js create mode 100644 node_modules/qs/lib/parse.js create mode 100644 node_modules/qs/lib/stringify.js create mode 100644 node_modules/qs/lib/utils.js create mode 100644 node_modules/qs/package.json create mode 100644 node_modules/qs/test/empty-keys-cases.js create mode 100644 node_modules/qs/test/parse.js create mode 100644 node_modules/qs/test/stringify.js create mode 100644 node_modules/qs/test/utils.js create mode 100644 node_modules/range-parser/HISTORY.md create mode 100644 node_modules/range-parser/LICENSE create mode 100644 node_modules/range-parser/README.md create mode 100644 node_modules/range-parser/index.js create mode 100644 node_modules/range-parser/package.json create mode 100644 node_modules/raw-body/LICENSE create mode 100644 node_modules/raw-body/README.md create mode 100644 node_modules/raw-body/index.d.ts create mode 100644 node_modules/raw-body/index.js create mode 100644 node_modules/raw-body/package.json create mode 100644 node_modules/rss/.editorconfig create mode 100644 node_modules/rss/.jshintrc create mode 100644 node_modules/rss/.npmignore create mode 100644 node_modules/rss/.travis.yml create mode 100644 node_modules/rss/Gruntfile.js create mode 100644 node_modules/rss/LICENSE create mode 100755 node_modules/rss/lib/index.js create mode 100644 node_modules/rss/node-rss.iml create mode 100644 node_modules/rss/node_modules/mime-db/HISTORY.md create mode 100644 node_modules/rss/node_modules/mime-db/LICENSE create mode 100644 node_modules/rss/node_modules/mime-db/README.md create mode 100644 node_modules/rss/node_modules/mime-db/db.json create mode 100644 node_modules/rss/node_modules/mime-db/index.js create mode 100644 node_modules/rss/node_modules/mime-db/package.json create mode 100644 node_modules/rss/node_modules/mime-types/HISTORY.md create mode 100644 node_modules/rss/node_modules/mime-types/LICENSE create mode 100644 node_modules/rss/node_modules/mime-types/README.md create mode 100644 node_modules/rss/node_modules/mime-types/index.js create mode 100644 node_modules/rss/node_modules/mime-types/package.json create mode 100644 node_modules/rss/package.json create mode 100644 node_modules/rss/readme.md create mode 100644 node_modules/safe-buffer/LICENSE create mode 100644 node_modules/safe-buffer/README.md create mode 100644 node_modules/safe-buffer/index.d.ts create mode 100644 node_modules/safe-buffer/index.js create mode 100644 node_modules/safe-buffer/package.json create mode 100644 node_modules/safer-buffer/LICENSE create mode 100644 node_modules/safer-buffer/Porting-Buffer.md create mode 100644 node_modules/safer-buffer/Readme.md create mode 100644 node_modules/safer-buffer/dangerous.js create mode 100644 node_modules/safer-buffer/package.json create mode 100644 node_modules/safer-buffer/safer.js create mode 100644 node_modules/safer-buffer/tests.js create mode 100644 node_modules/send/HISTORY.md create mode 100644 node_modules/send/LICENSE create mode 100644 node_modules/send/README.md create mode 100644 node_modules/send/SECURITY.md create mode 100644 node_modules/send/index.js create mode 100644 node_modules/send/node_modules/ms/index.js create mode 100644 node_modules/send/node_modules/ms/license.md create mode 100644 node_modules/send/node_modules/ms/package.json create mode 100644 node_modules/send/node_modules/ms/readme.md create mode 100644 node_modules/send/package.json create mode 100644 node_modules/serve-static/HISTORY.md create mode 100644 node_modules/serve-static/LICENSE create mode 100644 node_modules/serve-static/README.md create mode 100644 node_modules/serve-static/index.js create mode 100644 node_modules/serve-static/package.json create mode 100644 node_modules/setprototypeof/LICENSE create mode 100644 node_modules/setprototypeof/README.md create mode 100644 node_modules/setprototypeof/index.d.ts create mode 100644 node_modules/setprototypeof/index.js create mode 100644 node_modules/setprototypeof/package.json create mode 100644 node_modules/setprototypeof/test/index.js create mode 100644 node_modules/side-channel-list/.editorconfig create mode 100644 node_modules/side-channel-list/.eslintrc create mode 100644 node_modules/side-channel-list/.github/FUNDING.yml create mode 100644 node_modules/side-channel-list/.nycrc create mode 100644 node_modules/side-channel-list/CHANGELOG.md create mode 100644 node_modules/side-channel-list/LICENSE create mode 100644 node_modules/side-channel-list/README.md create mode 100644 node_modules/side-channel-list/index.d.ts create mode 100644 node_modules/side-channel-list/index.js create mode 100644 node_modules/side-channel-list/list.d.ts create mode 100644 node_modules/side-channel-list/package.json create mode 100644 node_modules/side-channel-list/test/index.js create mode 100644 node_modules/side-channel-list/tsconfig.json create mode 100644 node_modules/side-channel-map/.editorconfig create mode 100644 node_modules/side-channel-map/.eslintrc create mode 100644 node_modules/side-channel-map/.github/FUNDING.yml create mode 100644 node_modules/side-channel-map/.nycrc create mode 100644 node_modules/side-channel-map/CHANGELOG.md create mode 100644 node_modules/side-channel-map/LICENSE create mode 100644 node_modules/side-channel-map/README.md create mode 100644 node_modules/side-channel-map/index.d.ts create mode 100644 node_modules/side-channel-map/index.js create mode 100644 node_modules/side-channel-map/package.json create mode 100644 node_modules/side-channel-map/test/index.js create mode 100644 node_modules/side-channel-map/tsconfig.json create mode 100644 node_modules/side-channel-weakmap/.editorconfig create mode 100644 node_modules/side-channel-weakmap/.eslintrc create mode 100644 node_modules/side-channel-weakmap/.github/FUNDING.yml create mode 100644 node_modules/side-channel-weakmap/.nycrc create mode 100644 node_modules/side-channel-weakmap/CHANGELOG.md create mode 100644 node_modules/side-channel-weakmap/LICENSE create mode 100644 node_modules/side-channel-weakmap/README.md create mode 100644 node_modules/side-channel-weakmap/index.d.ts create mode 100644 node_modules/side-channel-weakmap/index.js create mode 100644 node_modules/side-channel-weakmap/package.json create mode 100644 node_modules/side-channel-weakmap/test/index.js create mode 100644 node_modules/side-channel-weakmap/tsconfig.json create mode 100644 node_modules/side-channel/.editorconfig create mode 100644 node_modules/side-channel/.eslintrc create mode 100644 node_modules/side-channel/.github/FUNDING.yml create mode 100644 node_modules/side-channel/.nycrc create mode 100644 node_modules/side-channel/CHANGELOG.md create mode 100644 node_modules/side-channel/LICENSE create mode 100644 node_modules/side-channel/README.md create mode 100644 node_modules/side-channel/index.d.ts create mode 100644 node_modules/side-channel/index.js create mode 100644 node_modules/side-channel/package.json create mode 100644 node_modules/side-channel/test/index.js create mode 100644 node_modules/side-channel/tsconfig.json create mode 100644 node_modules/sql.js/.devcontainer/Dockerfile create mode 100644 node_modules/sql.js/.devcontainer/devcontainer.json create mode 100644 node_modules/sql.js/.eslintrc.js create mode 100644 node_modules/sql.js/.jsdoc.config.json create mode 100644 node_modules/sql.js/.nojekyll create mode 100644 node_modules/sql.js/AUTHORS create mode 100644 node_modules/sql.js/CONTRIBUTING.md create mode 100644 node_modules/sql.js/LICENSE create mode 100644 node_modules/sql.js/README.md create mode 100644 node_modules/sql.js/dist/sql-asm-debug.js create mode 100644 node_modules/sql.js/dist/sql-asm-memory-growth.js create mode 100644 node_modules/sql.js/dist/sql-asm.js create mode 100644 node_modules/sql.js/dist/sql-wasm-browser-debug.js create mode 100755 node_modules/sql.js/dist/sql-wasm-browser-debug.wasm create mode 100644 node_modules/sql.js/dist/sql-wasm-browser.js create mode 100755 node_modules/sql.js/dist/sql-wasm-browser.wasm create mode 100644 node_modules/sql.js/dist/sql-wasm-debug.js create mode 100755 node_modules/sql.js/dist/sql-wasm-debug.wasm create mode 100644 node_modules/sql.js/dist/sql-wasm.js create mode 100755 node_modules/sql.js/dist/sql-wasm.wasm create mode 100644 node_modules/sql.js/dist/worker.sql-asm-debug.js create mode 100644 node_modules/sql.js/dist/worker.sql-asm.js create mode 100644 node_modules/sql.js/dist/worker.sql-wasm-debug.js create mode 100644 node_modules/sql.js/dist/worker.sql-wasm.js create mode 100644 node_modules/sql.js/documentation_index.md create mode 100644 node_modules/sql.js/eslint.config.cjs create mode 100644 node_modules/sql.js/logo.svg create mode 100644 node_modules/sql.js/package.json create mode 100644 node_modules/statuses/HISTORY.md create mode 100644 node_modules/statuses/LICENSE create mode 100644 node_modules/statuses/README.md create mode 100644 node_modules/statuses/codes.json create mode 100644 node_modules/statuses/index.js create mode 100644 node_modules/statuses/package.json create mode 100644 node_modules/toidentifier/HISTORY.md create mode 100644 node_modules/toidentifier/LICENSE create mode 100644 node_modules/toidentifier/README.md create mode 100644 node_modules/toidentifier/index.js create mode 100644 node_modules/toidentifier/package.json create mode 100644 node_modules/ts-mixer/CHANGELOG.md create mode 100644 node_modules/ts-mixer/LICENSE create mode 100644 node_modules/ts-mixer/README.md create mode 100644 node_modules/ts-mixer/dist/cjs/decorator.js create mode 100644 node_modules/ts-mixer/dist/cjs/index.js create mode 100644 node_modules/ts-mixer/dist/cjs/mixin-tracking.js create mode 100644 node_modules/ts-mixer/dist/cjs/mixins.js create mode 100644 node_modules/ts-mixer/dist/cjs/proxy.js create mode 100644 node_modules/ts-mixer/dist/cjs/settings.js create mode 100644 node_modules/ts-mixer/dist/cjs/types.js create mode 100644 node_modules/ts-mixer/dist/cjs/util.js create mode 100644 node_modules/ts-mixer/dist/esm/decorator.d.ts create mode 100644 node_modules/ts-mixer/dist/esm/index.d.ts create mode 100644 node_modules/ts-mixer/dist/esm/index.js create mode 100644 node_modules/ts-mixer/dist/esm/index.min.js create mode 100644 node_modules/ts-mixer/dist/esm/mixin-tracking.d.ts create mode 100644 node_modules/ts-mixer/dist/esm/mixins.d.ts create mode 100644 node_modules/ts-mixer/dist/esm/proxy.d.ts create mode 100644 node_modules/ts-mixer/dist/esm/settings.d.ts create mode 100644 node_modules/ts-mixer/dist/esm/types.d.ts create mode 100644 node_modules/ts-mixer/dist/esm/util.d.ts create mode 100644 node_modules/ts-mixer/dist/types/decorator.d.ts create mode 100644 node_modules/ts-mixer/dist/types/index.d.ts create mode 100644 node_modules/ts-mixer/dist/types/mixin-tracking.d.ts create mode 100644 node_modules/ts-mixer/dist/types/mixins.d.ts create mode 100644 node_modules/ts-mixer/dist/types/proxy.d.ts create mode 100644 node_modules/ts-mixer/dist/types/settings.d.ts create mode 100644 node_modules/ts-mixer/dist/types/types.d.ts create mode 100644 node_modules/ts-mixer/dist/types/util.d.ts create mode 100644 node_modules/ts-mixer/package.json create mode 100644 node_modules/tslib/CopyrightNotice.txt create mode 100644 node_modules/tslib/LICENSE.txt create mode 100644 node_modules/tslib/README.md create mode 100644 node_modules/tslib/SECURITY.md create mode 100644 node_modules/tslib/modules/index.d.ts create mode 100644 node_modules/tslib/modules/index.js create mode 100644 node_modules/tslib/modules/package.json create mode 100644 node_modules/tslib/package.json create mode 100644 node_modules/tslib/tslib.d.ts create mode 100644 node_modules/tslib/tslib.es6.html create mode 100644 node_modules/tslib/tslib.es6.js create mode 100644 node_modules/tslib/tslib.es6.mjs create mode 100644 node_modules/tslib/tslib.html create mode 100644 node_modules/tslib/tslib.js create mode 100644 node_modules/type-is/HISTORY.md create mode 100644 node_modules/type-is/LICENSE create mode 100644 node_modules/type-is/README.md create mode 100644 node_modules/type-is/index.js create mode 100644 node_modules/type-is/package.json create mode 100644 node_modules/undici-types/LICENSE create mode 100644 node_modules/undici-types/README.md create mode 100644 node_modules/undici-types/agent.d.ts create mode 100644 node_modules/undici-types/api.d.ts create mode 100644 node_modules/undici-types/balanced-pool.d.ts create mode 100644 node_modules/undici-types/cache-interceptor.d.ts create mode 100644 node_modules/undici-types/cache.d.ts create mode 100644 node_modules/undici-types/client-stats.d.ts create mode 100644 node_modules/undici-types/client.d.ts create mode 100644 node_modules/undici-types/connector.d.ts create mode 100644 node_modules/undici-types/content-type.d.ts create mode 100644 node_modules/undici-types/cookies.d.ts create mode 100644 node_modules/undici-types/diagnostics-channel.d.ts create mode 100644 node_modules/undici-types/dispatcher.d.ts create mode 100644 node_modules/undici-types/env-http-proxy-agent.d.ts create mode 100644 node_modules/undici-types/errors.d.ts create mode 100644 node_modules/undici-types/eventsource.d.ts create mode 100644 node_modules/undici-types/fetch.d.ts create mode 100644 node_modules/undici-types/formdata.d.ts create mode 100644 node_modules/undici-types/global-dispatcher.d.ts create mode 100644 node_modules/undici-types/global-origin.d.ts create mode 100644 node_modules/undici-types/h2c-client.d.ts create mode 100644 node_modules/undici-types/handlers.d.ts create mode 100644 node_modules/undici-types/header.d.ts create mode 100644 node_modules/undici-types/index.d.ts create mode 100644 node_modules/undici-types/interceptors.d.ts create mode 100644 node_modules/undici-types/mock-agent.d.ts create mode 100644 node_modules/undici-types/mock-call-history.d.ts create mode 100644 node_modules/undici-types/mock-client.d.ts create mode 100644 node_modules/undici-types/mock-errors.d.ts create mode 100644 node_modules/undici-types/mock-interceptor.d.ts create mode 100644 node_modules/undici-types/mock-pool.d.ts create mode 100644 node_modules/undici-types/package.json create mode 100644 node_modules/undici-types/patch.d.ts create mode 100644 node_modules/undici-types/pool-stats.d.ts create mode 100644 node_modules/undici-types/pool.d.ts create mode 100644 node_modules/undici-types/proxy-agent.d.ts create mode 100644 node_modules/undici-types/readable.d.ts create mode 100644 node_modules/undici-types/retry-agent.d.ts create mode 100644 node_modules/undici-types/retry-handler.d.ts create mode 100644 node_modules/undici-types/round-robin-pool.d.ts create mode 100644 node_modules/undici-types/snapshot-agent.d.ts create mode 100644 node_modules/undici-types/util.d.ts create mode 100644 node_modules/undici-types/utility.d.ts create mode 100644 node_modules/undici-types/webidl.d.ts create mode 100644 node_modules/undici-types/websocket.d.ts create mode 100644 node_modules/undici/LICENSE create mode 100644 node_modules/undici/README.md create mode 100644 node_modules/undici/docs/docs/api/Agent.md create mode 100644 node_modules/undici/docs/docs/api/BalancedPool.md create mode 100644 node_modules/undici/docs/docs/api/CacheStorage.md create mode 100644 node_modules/undici/docs/docs/api/Client.md create mode 100644 node_modules/undici/docs/docs/api/Connector.md create mode 100644 node_modules/undici/docs/docs/api/ContentType.md create mode 100644 node_modules/undici/docs/docs/api/Cookies.md create mode 100644 node_modules/undici/docs/docs/api/Debug.md create mode 100644 node_modules/undici/docs/docs/api/DiagnosticsChannel.md create mode 100644 node_modules/undici/docs/docs/api/DispatchInterceptor.md create mode 100644 node_modules/undici/docs/docs/api/Dispatcher.md create mode 100644 node_modules/undici/docs/docs/api/EnvHttpProxyAgent.md create mode 100644 node_modules/undici/docs/docs/api/Errors.md create mode 100644 node_modules/undici/docs/docs/api/EventSource.md create mode 100644 node_modules/undici/docs/docs/api/Fetch.md create mode 100644 node_modules/undici/docs/docs/api/MockAgent.md create mode 100644 node_modules/undici/docs/docs/api/MockClient.md create mode 100644 node_modules/undici/docs/docs/api/MockErrors.md create mode 100644 node_modules/undici/docs/docs/api/MockPool.md create mode 100644 node_modules/undici/docs/docs/api/Pool.md create mode 100644 node_modules/undici/docs/docs/api/PoolStats.md create mode 100644 node_modules/undici/docs/docs/api/ProxyAgent.md create mode 100644 node_modules/undici/docs/docs/api/RedirectHandler.md create mode 100644 node_modules/undici/docs/docs/api/RetryAgent.md create mode 100644 node_modules/undici/docs/docs/api/RetryHandler.md create mode 100644 node_modules/undici/docs/docs/api/Util.md create mode 100644 node_modules/undici/docs/docs/api/WebSocket.md create mode 100644 node_modules/undici/docs/docs/api/api-lifecycle.md create mode 100644 node_modules/undici/docs/docs/best-practices/client-certificate.md create mode 100644 node_modules/undici/docs/docs/best-practices/mocking-request.md create mode 100644 node_modules/undici/docs/docs/best-practices/proxy.md create mode 100644 node_modules/undici/docs/docs/best-practices/writing-tests.md create mode 100644 node_modules/undici/index-fetch.js create mode 100644 node_modules/undici/index.d.ts create mode 100644 node_modules/undici/index.js create mode 100644 node_modules/undici/lib/api/abort-signal.js create mode 100644 node_modules/undici/lib/api/api-connect.js create mode 100644 node_modules/undici/lib/api/api-pipeline.js create mode 100644 node_modules/undici/lib/api/api-request.js create mode 100644 node_modules/undici/lib/api/api-stream.js create mode 100644 node_modules/undici/lib/api/api-upgrade.js create mode 100644 node_modules/undici/lib/api/index.js create mode 100644 node_modules/undici/lib/api/readable.js create mode 100644 node_modules/undici/lib/api/util.js create mode 100644 node_modules/undici/lib/core/connect.js create mode 100644 node_modules/undici/lib/core/constants.js create mode 100644 node_modules/undici/lib/core/diagnostics.js create mode 100644 node_modules/undici/lib/core/errors.js create mode 100644 node_modules/undici/lib/core/request.js create mode 100644 node_modules/undici/lib/core/symbols.js create mode 100644 node_modules/undici/lib/core/tree.js create mode 100644 node_modules/undici/lib/core/util.js create mode 100644 node_modules/undici/lib/dispatcher/agent.js create mode 100644 node_modules/undici/lib/dispatcher/balanced-pool.js create mode 100644 node_modules/undici/lib/dispatcher/client-h1.js create mode 100644 node_modules/undici/lib/dispatcher/client-h2.js create mode 100644 node_modules/undici/lib/dispatcher/client.js create mode 100644 node_modules/undici/lib/dispatcher/dispatcher-base.js create mode 100644 node_modules/undici/lib/dispatcher/dispatcher.js create mode 100644 node_modules/undici/lib/dispatcher/env-http-proxy-agent.js create mode 100644 node_modules/undici/lib/dispatcher/fixed-queue.js create mode 100644 node_modules/undici/lib/dispatcher/pool-base.js create mode 100644 node_modules/undici/lib/dispatcher/pool-stats.js create mode 100644 node_modules/undici/lib/dispatcher/pool.js create mode 100644 node_modules/undici/lib/dispatcher/proxy-agent.js create mode 100644 node_modules/undici/lib/dispatcher/retry-agent.js create mode 100644 node_modules/undici/lib/global.js create mode 100644 node_modules/undici/lib/handler/decorator-handler.js create mode 100644 node_modules/undici/lib/handler/redirect-handler.js create mode 100644 node_modules/undici/lib/handler/retry-handler.js create mode 100644 node_modules/undici/lib/interceptor/dns.js create mode 100644 node_modules/undici/lib/interceptor/dump.js create mode 100644 node_modules/undici/lib/interceptor/redirect-interceptor.js create mode 100644 node_modules/undici/lib/interceptor/redirect.js create mode 100644 node_modules/undici/lib/interceptor/response-error.js create mode 100644 node_modules/undici/lib/interceptor/retry.js create mode 100644 node_modules/undici/lib/llhttp/.gitkeep create mode 100644 node_modules/undici/lib/llhttp/constants.js create mode 100644 node_modules/undici/lib/llhttp/llhttp-wasm.js create mode 100644 node_modules/undici/lib/llhttp/llhttp_simd-wasm.js create mode 100644 node_modules/undici/lib/llhttp/utils.js create mode 100644 node_modules/undici/lib/mock/mock-agent.js create mode 100644 node_modules/undici/lib/mock/mock-client.js create mode 100644 node_modules/undici/lib/mock/mock-errors.js create mode 100644 node_modules/undici/lib/mock/mock-interceptor.js create mode 100644 node_modules/undici/lib/mock/mock-pool.js create mode 100644 node_modules/undici/lib/mock/mock-symbols.js create mode 100644 node_modules/undici/lib/mock/mock-utils.js create mode 100644 node_modules/undici/lib/mock/pending-interceptors-formatter.js create mode 100644 node_modules/undici/lib/mock/pluralizer.js create mode 100644 node_modules/undici/lib/util/timers.js create mode 100644 node_modules/undici/lib/web/cache/cache.js create mode 100644 node_modules/undici/lib/web/cache/cachestorage.js create mode 100644 node_modules/undici/lib/web/cache/symbols.js create mode 100644 node_modules/undici/lib/web/cache/util.js create mode 100644 node_modules/undici/lib/web/cookies/constants.js create mode 100644 node_modules/undici/lib/web/cookies/index.js create mode 100644 node_modules/undici/lib/web/cookies/parse.js create mode 100644 node_modules/undici/lib/web/cookies/util.js create mode 100644 node_modules/undici/lib/web/eventsource/eventsource-stream.js create mode 100644 node_modules/undici/lib/web/eventsource/eventsource.js create mode 100644 node_modules/undici/lib/web/eventsource/util.js create mode 100644 node_modules/undici/lib/web/fetch/LICENSE create mode 100644 node_modules/undici/lib/web/fetch/body.js create mode 100644 node_modules/undici/lib/web/fetch/constants.js create mode 100644 node_modules/undici/lib/web/fetch/data-url.js create mode 100644 node_modules/undici/lib/web/fetch/dispatcher-weakref.js create mode 100644 node_modules/undici/lib/web/fetch/file.js create mode 100644 node_modules/undici/lib/web/fetch/formdata-parser.js create mode 100644 node_modules/undici/lib/web/fetch/formdata.js create mode 100644 node_modules/undici/lib/web/fetch/global.js create mode 100644 node_modules/undici/lib/web/fetch/headers.js create mode 100644 node_modules/undici/lib/web/fetch/index.js create mode 100644 node_modules/undici/lib/web/fetch/request.js create mode 100644 node_modules/undici/lib/web/fetch/response.js create mode 100644 node_modules/undici/lib/web/fetch/symbols.js create mode 100644 node_modules/undici/lib/web/fetch/util.js create mode 100644 node_modules/undici/lib/web/fetch/webidl.js create mode 100644 node_modules/undici/lib/web/fileapi/encoding.js create mode 100644 node_modules/undici/lib/web/fileapi/filereader.js create mode 100644 node_modules/undici/lib/web/fileapi/progressevent.js create mode 100644 node_modules/undici/lib/web/fileapi/symbols.js create mode 100644 node_modules/undici/lib/web/fileapi/util.js create mode 100644 node_modules/undici/lib/web/websocket/connection.js create mode 100644 node_modules/undici/lib/web/websocket/constants.js create mode 100644 node_modules/undici/lib/web/websocket/events.js create mode 100644 node_modules/undici/lib/web/websocket/frame.js create mode 100644 node_modules/undici/lib/web/websocket/permessage-deflate.js create mode 100644 node_modules/undici/lib/web/websocket/receiver.js create mode 100644 node_modules/undici/lib/web/websocket/sender.js create mode 100644 node_modules/undici/lib/web/websocket/symbols.js create mode 100644 node_modules/undici/lib/web/websocket/util.js create mode 100644 node_modules/undici/lib/web/websocket/websocket.js create mode 100644 node_modules/undici/package.json create mode 100644 node_modules/undici/scripts/strip-comments.js create mode 100644 node_modules/undici/types/README.md create mode 100644 node_modules/undici/types/agent.d.ts create mode 100644 node_modules/undici/types/api.d.ts create mode 100644 node_modules/undici/types/balanced-pool.d.ts create mode 100644 node_modules/undici/types/cache.d.ts create mode 100644 node_modules/undici/types/client.d.ts create mode 100644 node_modules/undici/types/connector.d.ts create mode 100644 node_modules/undici/types/content-type.d.ts create mode 100644 node_modules/undici/types/cookies.d.ts create mode 100644 node_modules/undici/types/diagnostics-channel.d.ts create mode 100644 node_modules/undici/types/dispatcher.d.ts create mode 100644 node_modules/undici/types/env-http-proxy-agent.d.ts create mode 100644 node_modules/undici/types/errors.d.ts create mode 100644 node_modules/undici/types/eventsource.d.ts create mode 100644 node_modules/undici/types/fetch.d.ts create mode 100644 node_modules/undici/types/file.d.ts create mode 100644 node_modules/undici/types/filereader.d.ts create mode 100644 node_modules/undici/types/formdata.d.ts create mode 100644 node_modules/undici/types/global-dispatcher.d.ts create mode 100644 node_modules/undici/types/global-origin.d.ts create mode 100644 node_modules/undici/types/handlers.d.ts create mode 100644 node_modules/undici/types/header.d.ts create mode 100644 node_modules/undici/types/index.d.ts create mode 100644 node_modules/undici/types/interceptors.d.ts create mode 100644 node_modules/undici/types/mock-agent.d.ts create mode 100644 node_modules/undici/types/mock-client.d.ts create mode 100644 node_modules/undici/types/mock-errors.d.ts create mode 100644 node_modules/undici/types/mock-interceptor.d.ts create mode 100644 node_modules/undici/types/mock-pool.d.ts create mode 100644 node_modules/undici/types/patch.d.ts create mode 100644 node_modules/undici/types/pool-stats.d.ts create mode 100644 node_modules/undici/types/pool.d.ts create mode 100644 node_modules/undici/types/proxy-agent.d.ts create mode 100644 node_modules/undici/types/readable.d.ts create mode 100644 node_modules/undici/types/retry-agent.d.ts create mode 100644 node_modules/undici/types/retry-handler.d.ts create mode 100644 node_modules/undici/types/util.d.ts create mode 100644 node_modules/undici/types/webidl.d.ts create mode 100644 node_modules/undici/types/websocket.d.ts create mode 100644 node_modules/unpipe/HISTORY.md create mode 100644 node_modules/unpipe/LICENSE create mode 100644 node_modules/unpipe/README.md create mode 100644 node_modules/unpipe/index.js create mode 100644 node_modules/unpipe/package.json create mode 100644 node_modules/utils-merge/.npmignore create mode 100644 node_modules/utils-merge/LICENSE create mode 100644 node_modules/utils-merge/README.md create mode 100644 node_modules/utils-merge/index.js create mode 100644 node_modules/utils-merge/package.json create mode 100644 node_modules/vary/HISTORY.md create mode 100644 node_modules/vary/LICENSE create mode 100644 node_modules/vary/README.md create mode 100644 node_modules/vary/index.js create mode 100644 node_modules/vary/package.json create mode 100644 node_modules/ws/LICENSE create mode 100644 node_modules/ws/README.md create mode 100644 node_modules/ws/browser.js create mode 100644 node_modules/ws/index.js create mode 100644 node_modules/ws/lib/buffer-util.js create mode 100644 node_modules/ws/lib/constants.js create mode 100644 node_modules/ws/lib/event-target.js create mode 100644 node_modules/ws/lib/extension.js create mode 100644 node_modules/ws/lib/limiter.js create mode 100644 node_modules/ws/lib/permessage-deflate.js create mode 100644 node_modules/ws/lib/receiver.js create mode 100644 node_modules/ws/lib/sender.js create mode 100644 node_modules/ws/lib/stream.js create mode 100644 node_modules/ws/lib/subprotocol.js create mode 100644 node_modules/ws/lib/validation.js create mode 100644 node_modules/ws/lib/websocket-server.js create mode 100644 node_modules/ws/lib/websocket.js create mode 100644 node_modules/ws/package.json create mode 100644 node_modules/ws/wrapper.mjs create mode 100644 node_modules/xml/.npmignore create mode 100644 node_modules/xml/.travis.yml create mode 100644 node_modules/xml/LICENSE create mode 100644 node_modules/xml/examples/examples.js create mode 100644 node_modules/xml/examples/server.js create mode 100644 node_modules/xml/lib/escapeForXML.js create mode 100644 node_modules/xml/lib/xml.js create mode 100644 node_modules/xml/package.json create mode 100644 node_modules/xml/readme.md create mode 100644 node_modules/xml/test/xml.test.js create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 src/bot.js create mode 100644 src/database.js create mode 100644 src/index.js create mode 100644 src/rss.js diff --git a/.claude/settings.local.json b/.claude/settings.local.json new file mode 100644 index 0000000..25df048 --- /dev/null +++ b/.claude/settings.local.json @@ -0,0 +1,7 @@ +{ + "permissions": { + "allow": [ + "Bash(npm install:*)" + ] + } +} diff --git a/.env b/.env new file mode 100644 index 0000000..6875bff --- /dev/null +++ b/.env @@ -0,0 +1,16 @@ +# Discord Bot Token +# Get this from https://discord.com/developers/applications +DISCORD_TOKEN=MTQ5MTAxODYzOTc0MTI5MjY0NA.GxBqVk.dB3cWx8t8-kWLrMLGFL-g2ePkrs7l_XEIedHdk + +# Discord Channel ID to monitor +# Right-click a channel and select "Copy Channel ID" (enable Developer Mode first) +DISCORD_CHANNEL_ID=600347996080701506 + +# Server port (optional, defaults to 3000) +PORT=8000 + +# Base URL for RSS feed links (optional) +BASE_URL=http://localhost:8000 + +# Fetch interval in milliseconds (optional, defaults to 5 minutes) +FETCH_INTERVAL_MS=300000 diff --git a/README.md b/README.md new file mode 100644 index 0000000..e949b61 --- /dev/null +++ b/README.md @@ -0,0 +1,91 @@ +# Discord RSS Bot + +A Discord bot that reads messages from a channel, stores them in SQLite, and serves them as an RSS feed. + +## Setup + +### 1. Create a Discord Bot + +1. Go to [Discord Developer Portal](https://discord.com/developers/applications) +2. Click "New Application" and give it a name +3. Go to the "Bot" section and click "Add Bot" +4. Copy the bot token +5. Under "Privileged Gateway Intents", enable: + - Server Members Intent + - Message Content Intent +6. Go to "OAuth2" > "URL Generator" +7. Select scopes: `bot` +8. Select bot permissions: `Read Messages/View Channels`, `Send Messages` +9. Use the generated URL to invite the bot to your server + +### 2. Configure Environment + +```bash +cp .env.example .env +``` + +Edit `.env` and add: +- `DISCORD_TOKEN` - Your bot token +- `DISCORD_CHANNEL_ID` - The channel ID to monitor (enable Developer Mode in Discord to copy channel IDs) + +### 3. Install Dependencies + +```bash +npm install +``` + +### 4. Run + +```bash +npm start +``` + +## Usage + +### RSS Feed + +Access the RSS feed at: +``` +http://localhost:3000/rss/{channel_id} +``` + +Or with a custom limit: +``` +http://localhost:3000/rss/{channel_id}?limit=20 +``` + +### List Available Channels + +``` +GET http://localhost:3000/rss/ +``` + +### Manually Trigger Fetch + +``` +POST http://localhost:3000/fetch/{channel_id} +``` + +## API Endpoints + +| Method | Endpoint | Description | +|--------|----------|-------------| +| GET | `/rss` | List all channels with messages | +| GET | `/rss/:channelId` | Get RSS feed for a channel | +| GET | `/rss/:channelId?limit=N` | Get RSS feed with N messages | +| POST | `/fetch/:channelId` | Trigger message fetch | +| GET | `/health` | Health check | + +## Configuration + +| Variable | Default | Description | +|----------|---------|-------------| +| `DISCORD_TOKEN` | - | Discord bot token | +| `DISCORD_CHANNEL_ID` | - | Channel to monitor | +| `PORT` | 3000 | Server port | +| `BASE_URL` | http://localhost:3000 | Base URL for RSS links | +| `FETCH_INTERVAL_MS` | 300000 | Auto-fetch interval (5 min) | + +## Database + +Messages are stored in `data/messages.db` (SQLite). The database is created automatically on first run. diff --git a/data/messages.db b/data/messages.db new file mode 100644 index 0000000000000000000000000000000000000000..d8b829ea1ca4000d7589531b052a99ff6cd0ce36 GIT binary patch literal 94208 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

CI}MD8kjKq*2p$U&0Li}_Q$Xfd@sO%|~k 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 literal 0 HcmV?d00001 diff --git a/node_modules/.bin/mime b/node_modules/.bin/mime new file mode 120000 index 0000000..fbb7ee0 --- /dev/null +++ b/node_modules/.bin/mime @@ -0,0 +1 @@ +../mime/cli.js \ No newline at end of file diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json new file mode 100644 index 0000000..dfe7549 --- /dev/null +++ b/node_modules/.package-lock.json @@ -0,0 +1,1184 @@ +{ + "name": "discord-rss-bot", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "node_modules/@discordjs/builders": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-1.14.1.tgz", + "integrity": "sha512-gSKkhXLqs96TCzk66VZuHHl8z2bQMJFGwrXC0f33ngK+FLNau4hU1PYny3DNJfNdSH+gVMzE85/d5FQ2BpcNwQ==", + "license": "Apache-2.0", + "dependencies": { + "@discordjs/formatters": "^0.6.2", + "@discordjs/util": "^1.2.0", + "@sapphire/shapeshift": "^4.0.0", + "discord-api-types": "^0.38.40", + "fast-deep-equal": "^3.1.3", + "ts-mixer": "^6.0.4", + "tslib": "^2.6.3" + }, + "engines": { + "node": ">=16.11.0" + }, + "funding": { + "url": "https://github.com/discordjs/discord.js?sponsor" + } + }, + "node_modules/@discordjs/collection": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-1.5.3.tgz", + "integrity": "sha512-SVb428OMd3WO1paV3rm6tSjM4wC+Kecaa1EUGX7vc6/fddvw/6lg90z4QtCqm21zvVe92vMMDt9+DkIvjXImQQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=16.11.0" + } + }, + "node_modules/@discordjs/formatters": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/@discordjs/formatters/-/formatters-0.6.2.tgz", + "integrity": "sha512-y4UPwWhH6vChKRkGdMB4odasUbHOUwy7KL+OVwF86PvT6QVOwElx+TiI1/6kcmcEe+g5YRXJFiXSXUdabqZOvQ==", + "license": "Apache-2.0", + "dependencies": { + "discord-api-types": "^0.38.33" + }, + "engines": { + "node": ">=16.11.0" + }, + "funding": { + "url": "https://github.com/discordjs/discord.js?sponsor" + } + }, + "node_modules/@discordjs/rest": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@discordjs/rest/-/rest-2.6.1.tgz", + "integrity": "sha512-wwQdgjeaoYFiaG+atbqx6aJDpqW7JHAo0HrQkBTbYzM3/PJ3GweQIpgElNcGZ26DCUOXMyawYd0YF7vtr+fZXg==", + "license": "Apache-2.0", + "dependencies": { + "@discordjs/collection": "^2.1.1", + "@discordjs/util": "^1.2.0", + "@sapphire/async-queue": "^1.5.3", + "@sapphire/snowflake": "^3.5.5", + "@vladfrangu/async_event_emitter": "^2.4.6", + "discord-api-types": "^0.38.40", + "magic-bytes.js": "^1.13.0", + "tslib": "^2.6.3", + "undici": "6.24.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/discordjs/discord.js?sponsor" + } + }, + "node_modules/@discordjs/rest/node_modules/@discordjs/collection": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-2.1.1.tgz", + "integrity": "sha512-LiSusze9Tc7qF03sLCujF5iZp7K+vRNEDBZ86FT9aQAv3vxMLihUvKvpsCWiQ2DJq1tVckopKm1rxomgNUc9hg==", + "license": "Apache-2.0", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/discordjs/discord.js?sponsor" + } + }, + "node_modules/@discordjs/rest/node_modules/@sapphire/snowflake": { + "version": "3.5.5", + "resolved": "https://registry.npmjs.org/@sapphire/snowflake/-/snowflake-3.5.5.tgz", + "integrity": "sha512-xzvBr1Q1c4lCe7i6sRnrofxeO1QTP/LKQ6A6qy0iB4x5yfiSfARMEQEghojzTNALDTcv8En04qYNIco9/K9eZQ==", + "license": "MIT", + "engines": { + "node": ">=v14.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@discordjs/util": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@discordjs/util/-/util-1.2.0.tgz", + "integrity": "sha512-3LKP7F2+atl9vJFhaBjn4nOaSWahZ/yWjOvA4e5pnXkt2qyXRCHLxoBQy81GFtLGCq7K9lPm9R517M1U+/90Qg==", + "license": "Apache-2.0", + "dependencies": { + "discord-api-types": "^0.38.33" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/discordjs/discord.js?sponsor" + } + }, + "node_modules/@discordjs/ws": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@discordjs/ws/-/ws-1.2.3.tgz", + "integrity": "sha512-wPlQDxEmlDg5IxhJPuxXr3Vy9AjYq5xCvFWGJyD7w7Np8ZGu+Mc+97LCoEc/+AYCo2IDpKioiH0/c/mj5ZR9Uw==", + "license": "Apache-2.0", + "dependencies": { + "@discordjs/collection": "^2.1.0", + "@discordjs/rest": "^2.5.1", + "@discordjs/util": "^1.1.0", + "@sapphire/async-queue": "^1.5.2", + "@types/ws": "^8.5.10", + "@vladfrangu/async_event_emitter": "^2.2.4", + "discord-api-types": "^0.38.1", + "tslib": "^2.6.2", + "ws": "^8.17.0" + }, + "engines": { + "node": ">=16.11.0" + }, + "funding": { + "url": "https://github.com/discordjs/discord.js?sponsor" + } + }, + "node_modules/@discordjs/ws/node_modules/@discordjs/collection": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-2.1.1.tgz", + "integrity": "sha512-LiSusze9Tc7qF03sLCujF5iZp7K+vRNEDBZ86FT9aQAv3vxMLihUvKvpsCWiQ2DJq1tVckopKm1rxomgNUc9hg==", + "license": "Apache-2.0", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/discordjs/discord.js?sponsor" + } + }, + "node_modules/@sapphire/async-queue": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.5.5.tgz", + "integrity": "sha512-cvGzxbba6sav2zZkH8GPf2oGk9yYoD5qrNWdu9fRehifgnFZJMV+nuy2nON2roRO4yQQ+v7MK/Pktl/HgfsUXg==", + "license": "MIT", + "engines": { + "node": ">=v14.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@sapphire/shapeshift": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@sapphire/shapeshift/-/shapeshift-4.0.0.tgz", + "integrity": "sha512-d9dUmWVA7MMiKobL3VpLF8P2aeanRTu6ypG2OIaEv/ZHH/SUQ2iHOVyi5wAPjQ+HmnMuL0whK9ez8I/raWbtIg==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "lodash": "^4.17.21" + }, + "engines": { + "node": ">=v16" + } + }, + "node_modules/@sapphire/snowflake": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/@sapphire/snowflake/-/snowflake-3.5.3.tgz", + "integrity": "sha512-jjmJywLAFoWeBi1W7994zZyiNWPIiqRRNAmSERxyg93xRGzNYvGjlZ0gR6x0F4gPRi2+0O6S71kOZYyr3cxaIQ==", + "license": "MIT", + "engines": { + "node": ">=v14.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@types/node": { + "version": "25.5.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.5.2.tgz", + "integrity": "sha512-tO4ZIRKNC+MDWV4qKVZe3Ql/woTnmHDr5JD8UI5hn2pwBrHEwOEMZK7WlNb5RKB6EoJ02gwmQS9OrjuFnZYdpg==", + "license": "MIT", + "dependencies": { + "undici-types": "~7.18.0" + } + }, + "node_modules/@types/ws": { + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz", + "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@vladfrangu/async_event_emitter": { + "version": "2.4.7", + "resolved": "https://registry.npmjs.org/@vladfrangu/async_event_emitter/-/async_event_emitter-2.4.7.tgz", + "integrity": "sha512-Xfe6rpCTxSxfbswi/W/Pz7zp1WWSNn4A0eW4mLkQUewCrXXtMj31lCg+iQyTkh/CkusZSq9eDflu7tjEDXUY6g==", + "license": "MIT", + "engines": { + "node": ">=v14.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "license": "MIT" + }, + "node_modules/body-parser": { + "version": "1.20.4", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.4.tgz", + "integrity": "sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA==", + "license": "MIT", + "dependencies": { + "bytes": "~3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "~1.2.0", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "on-finished": "~2.4.1", + "qs": "~6.14.0", + "raw-body": "~2.5.3", + "type-is": "~1.6.18", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.7.tgz", + "integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==", + "license": "MIT" + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/discord-api-types": { + "version": "0.38.44", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.38.44.tgz", + "integrity": "sha512-q91MgBzP/gRaCLIbQTaOrOhbD8uVIaPKxpgX2sfFB2nZ9nSiTYM9P3NFQ7cbO6NCxctI6ODttc67MI+YhIfILg==", + "license": "MIT", + "workspaces": [ + "scripts/actions/documentation" + ] + }, + "node_modules/discord.js": { + "version": "14.26.2", + "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-14.26.2.tgz", + "integrity": "sha512-feShi+gULJ6R2MAA4/KkCFnkJcuVrROJrKk4czplzq8gE1oqhqgOy9K0Scu44B8oGeWKe04egquzf+ia6VtXAw==", + "license": "Apache-2.0", + "dependencies": { + "@discordjs/builders": "^1.14.1", + "@discordjs/collection": "1.5.3", + "@discordjs/formatters": "^0.6.2", + "@discordjs/rest": "^2.6.1", + "@discordjs/util": "^1.2.0", + "@discordjs/ws": "^1.2.3", + "@sapphire/snowflake": "3.5.3", + "discord-api-types": "^0.38.40", + "fast-deep-equal": "3.1.3", + "lodash.snakecase": "4.1.1", + "magic-bytes.js": "^1.13.0", + "tslib": "^2.6.3", + "undici": "6.24.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/discordjs/discord.js?sponsor" + } + }, + "node_modules/dotenv": { + "version": "16.6.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz", + "integrity": "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.22.1.tgz", + "integrity": "sha512-F2X8g9P1X7uCPZMA3MVf9wcTqlyNp7IhH5qPCI0izhaOIYXaW9L535tGA3qmjRzpH+bZczqq7hVKxTR4NWnu+g==", + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "~1.20.3", + "content-disposition": "~0.5.4", + "content-type": "~1.0.4", + "cookie": "~0.7.1", + "cookie-signature": "~1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.3.1", + "fresh": "~0.5.2", + "http-errors": "~2.0.0", + "merge-descriptors": "1.0.3", + "methods": "~1.1.2", + "on-finished": "~2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "~0.1.12", + "proxy-addr": "~2.0.7", + "qs": "~6.14.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "~0.19.0", + "serve-static": "~1.16.2", + "setprototypeof": "1.2.0", + "statuses": "~2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" + }, + "node_modules/finalhandler": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz", + "integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "~2.4.1", + "parseurl": "~1.3.3", + "statuses": "~2.0.2", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/http-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", + "license": "MIT", + "dependencies": { + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/lodash": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", + "license": "MIT" + }, + "node_modules/lodash.snakecase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", + "integrity": "sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==", + "license": "MIT" + }, + "node_modules/magic-bytes.js": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/magic-bytes.js/-/magic-bytes.js-1.13.0.tgz", + "integrity": "sha512-afO2mnxW7GDTXMm5/AoN1WuOcdoKhtgXjIvHmobqTD1grNplhGdv3PFOyjCVmrnOZBIT/gD/koDKpYG+0mvHcg==", + "license": "MIT" + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.13.tgz", + "integrity": "sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA==", + "license": "MIT" + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/qs": { + "version": "6.14.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.2.tgz", + "integrity": "sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.3.tgz", + "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==", + "license": "MIT", + "dependencies": { + "bytes": "~3.1.2", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/rss": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/rss/-/rss-1.2.2.tgz", + "integrity": "sha512-xUhRTgslHeCBeHAqaWSbOYTydN2f0tAzNXvzh3stjz7QDhQMzdgHf3pfgNIngeytQflrFPfy6axHilTETr6gDg==", + "license": "MIT", + "dependencies": { + "mime-types": "2.1.13", + "xml": "1.0.1" + } + }, + "node_modules/rss/node_modules/mime-db": { + "version": "1.25.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.25.0.tgz", + "integrity": "sha512-5k547tI4Cy+Lddr/hdjNbBEWBwSl8EBc5aSdKvedav8DReADgWJzcYiktaRIw3GtGC1jjwldXtTzvqJZmtvC7w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/rss/node_modules/mime-types": { + "version": "2.1.13", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.13.tgz", + "integrity": "sha512-ryBDp1Z/6X90UvjUK3RksH0IBPM137T7cmg4OgD5wQBojlAiUwuok0QeELkim/72EtcYuNlmbkrcGuxj3Kl0YQ==", + "license": "MIT", + "dependencies": { + "mime-db": "~1.25.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/send": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.2.tgz", + "integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "~0.5.2", + "http-errors": "~2.0.1", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "~2.4.1", + "range-parser": "~1.2.1", + "statuses": "~2.0.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/serve-static": { + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.3.tgz", + "integrity": "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==", + "license": "MIT", + "dependencies": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "~0.19.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sql.js": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/sql.js/-/sql.js-1.14.1.tgz", + "integrity": "sha512-gcj8zBWU5cFsi9WUP+4bFNXAyF1iRpA3LLyS/DP5xlrNzGmPIizUeBggKa8DbDwdqaKwUcTEnChtd2grWo/x/A==", + "license": "MIT" + }, + "node_modules/statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/ts-mixer": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.4.tgz", + "integrity": "sha512-ufKpbmrugz5Aou4wcr5Wc1UUFWOLhq+Fm6qa6P0w0K5Qw2yhaUoiWszhCVuNQyNwrlGiscHOmqYoAox1PtvgjA==", + "license": "MIT" + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/undici": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.24.1.tgz", + "integrity": "sha512-sC+b0tB1whOCzbtlx20fx3WgCXwkW627p4EA9uM+/tNNPkSS+eSEld6pAs9nDv7WbY1UUljBMYPtu9BCOrCWKA==", + "license": "MIT", + "engines": { + "node": ">=18.17" + } + }, + "node_modules/undici-types": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", + "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==", + "license": "MIT" + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/ws": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.20.0.tgz", + "integrity": "sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", + "integrity": "sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==", + "license": "MIT" + } + } +} diff --git a/node_modules/@discordjs/builders/LICENSE b/node_modules/@discordjs/builders/LICENSE new file mode 100644 index 0000000..cbe9c65 --- /dev/null +++ b/node_modules/@discordjs/builders/LICENSE @@ -0,0 +1,191 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + Copyright 2021 Noel Buechler + Copyright 2021 Vlad Frangu + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/node_modules/@discordjs/builders/README.md b/node_modules/@discordjs/builders/README.md new file mode 100644 index 0000000..626d709 --- /dev/null +++ b/node_modules/@discordjs/builders/README.md @@ -0,0 +1,73 @@ +

+
+

+ discord.js +

+
+

+ Discord server + npm version + npm downloads + Build status + Last commit. + Code coverage +

+

+ Vercel + Cloudflare Workers +

+
+ +## About + +`@discordjs/builders` is a utility package for easily building Discord API payloads. + +## Installation + +**Node.js 16.11.0 or newer is required.** + +```sh +npm install @discordjs/builders +yarn add @discordjs/builders +pnpm add @discordjs/builders +``` + +## Examples + +You can find examples of how to use the builders in the [Slash Command Builders][example] examples. + +## Links + +- [Website][website] ([source][website-source]) +- [Documentation][documentation] +- [Guide][guide] ([source][guide-source]) + Also see the v13 to v14 [Update Guide][guide-update], which includes updated and removed items from the library. +- [discord.js Discord server][discord] +- [Discord API Discord server][discord-api] +- [GitHub][source] +- [npm][npm] +- [Related libraries][related-libs] + +## Contributing + +Before creating an issue, please ensure that it hasn't already been reported/suggested, and double-check the +[documentation][documentation]. +See [the contribution guide][contributing] if you'd like to submit a PR. + +## Help + +If you don't understand something in the documentation, you are experiencing problems, or you just need a gentle nudge in the right direction, please don't hesitate to join our official [discord.js Server][discord]. + +[example]: https://github.com/discordjs/discord.js/blob/main/packages/builders/docs/examples/Slash%20Command%20Builders.md +[website]: https://discord.js.org +[website-source]: https://github.com/discordjs/discord.js/tree/main/apps/website +[documentation]: https://discord.js.org/docs/packages/builders/stable +[guide]: https://discordjs.guide/ +[guide-source]: https://github.com/discordjs/guide +[guide-update]: https://discordjs.guide/additional-info/changes-in-v14.html +[discord]: https://discord.gg/djs +[discord-api]: https://discord.gg/discord-api +[source]: https://github.com/discordjs/discord.js/tree/main/packages/builders +[npm]: https://www.npmjs.com/package/@discordjs/builders +[related-libs]: https://discord.com/developers/docs/topics/community-resources#libraries +[contributing]: https://github.com/discordjs/discord.js/blob/main/.github/CONTRIBUTING.md diff --git a/node_modules/@discordjs/builders/dist/index.d.mts b/node_modules/@discordjs/builders/dist/index.d.mts new file mode 100644 index 0000000..b0751ed --- /dev/null +++ b/node_modules/@discordjs/builders/dist/index.d.mts @@ -0,0 +1,16374 @@ +import * as _sapphire_shapeshift from '@sapphire/shapeshift'; +import { APIEmbedField, APIEmbedAuthor, APIEmbed, APIEmbedFooter, APIEmbedImage, APISelectMenuOption, APIMessageComponentEmoji, ButtonStyle, ChannelType, APIBaseComponent, ComponentType, APIActionRowComponent, APIComponentInActionRow, APIMessageComponent, APIModalComponent, APIButtonComponent, Snowflake, APISelectMenuComponent, APIChannelSelectComponent, APIMentionableSelectComponent, APISelectMenuDefaultValue, SelectMenuDefaultValueType, APIRoleSelectComponent, APIStringSelectComponent, APIUserSelectComponent, APITextInputComponent, TextInputStyle, APIComponentInMessageActionRow, APIComponentInModalActionRow, APICheckboxComponent, APICheckboxGroupOption, APICheckboxGroupComponent, APIRadioGroupOption, APIRadioGroupComponent, APIFileUploadComponent, APILabelComponent, APIFileComponent, APISeparatorComponent, SeparatorSpacingSize, APITextDisplayComponent, APIContainerComponent, APIMediaGalleryComponent, APISectionComponent, APIComponentInContainer, APIMediaGalleryItem, APIThumbnailComponent, APIModalInteractionResponseCallbackData, LocalizationMap, LocaleString, InteractionContextType, Permissions, ApplicationIntegrationType, RESTPostAPIChatInputApplicationCommandsJSONBody, ApplicationCommandOptionType, APIApplicationCommandBasicOption, APIApplicationCommandAttachmentOption, APIApplicationCommandBooleanOption, APIApplicationCommandChannelOption, APIApplicationCommandOptionChoice, APIApplicationCommandIntegerOption, APIApplicationCommandMentionableOption, APIApplicationCommandNumberOption, APIApplicationCommandRoleOption, APIApplicationCommandStringOption, APIApplicationCommandUserOption, APIApplicationCommandSubcommandOption, APIApplicationCommandSubcommandGroupOption, APIApplicationCommandOption, Locale, ApplicationCommandType, RESTPostAPIContextMenuApplicationCommandsJSONBody } from 'discord-api-types/v10'; +export * from '@discordjs/formatters'; +import { JSONEncodable, Equatable } from '@discordjs/util'; + +declare const fieldNamePredicate: _sapphire_shapeshift.StringValidator; +declare const fieldValuePredicate: _sapphire_shapeshift.StringValidator; +declare const fieldInlinePredicate: _sapphire_shapeshift.UnionValidator; +declare const embedFieldPredicate: _sapphire_shapeshift.ObjectValidator<{ + name: string; + value: string; + inline: boolean | undefined; +}, _sapphire_shapeshift.UndefinedToOptional<{ + name: string; + value: string; + inline: boolean | undefined; +}>>; +declare const embedFieldsArrayPredicate: _sapphire_shapeshift.ArrayValidator<_sapphire_shapeshift.UndefinedToOptional<{ + name: string; + value: string; + inline: boolean | undefined; +}>[], _sapphire_shapeshift.UndefinedToOptional<{ + name: string; + value: string; + inline: boolean | undefined; +}>>; +declare const fieldLengthPredicate: _sapphire_shapeshift.NumberValidator; +declare function validateFieldLength(amountAdding: number, fields?: APIEmbedField[]): void; +declare const authorNamePredicate: _sapphire_shapeshift.UnionValidator; +declare const imageURLPredicate: _sapphire_shapeshift.UnionValidator; +declare const urlPredicate: _sapphire_shapeshift.UnionValidator; +declare const embedAuthorPredicate: _sapphire_shapeshift.ObjectValidator<{ + name: string | null; + iconURL: string | null | undefined; + url: string | null | undefined; +}, _sapphire_shapeshift.UndefinedToOptional<{ + name: string | null; + iconURL: string | null | undefined; + url: string | null | undefined; +}>>; +declare const RGBPredicate: _sapphire_shapeshift.NumberValidator; +declare const colorPredicate: _sapphire_shapeshift.UnionValidator; +declare const descriptionPredicate$1: _sapphire_shapeshift.UnionValidator; +declare const footerTextPredicate: _sapphire_shapeshift.UnionValidator; +declare const embedFooterPredicate: _sapphire_shapeshift.ObjectValidator<{ + text: string | null; + iconURL: string | null | undefined; +}, _sapphire_shapeshift.UndefinedToOptional<{ + text: string | null; + iconURL: string | null | undefined; +}>>; +declare const timestampPredicate: _sapphire_shapeshift.UnionValidator; +declare const titlePredicate: _sapphire_shapeshift.UnionValidator; + +declare const Assertions$a_RGBPredicate: typeof RGBPredicate; +declare const Assertions$a_authorNamePredicate: typeof authorNamePredicate; +declare const Assertions$a_colorPredicate: typeof colorPredicate; +declare const Assertions$a_embedAuthorPredicate: typeof embedAuthorPredicate; +declare const Assertions$a_embedFieldPredicate: typeof embedFieldPredicate; +declare const Assertions$a_embedFieldsArrayPredicate: typeof embedFieldsArrayPredicate; +declare const Assertions$a_embedFooterPredicate: typeof embedFooterPredicate; +declare const Assertions$a_fieldInlinePredicate: typeof fieldInlinePredicate; +declare const Assertions$a_fieldLengthPredicate: typeof fieldLengthPredicate; +declare const Assertions$a_fieldNamePredicate: typeof fieldNamePredicate; +declare const Assertions$a_fieldValuePredicate: typeof fieldValuePredicate; +declare const Assertions$a_footerTextPredicate: typeof footerTextPredicate; +declare const Assertions$a_imageURLPredicate: typeof imageURLPredicate; +declare const Assertions$a_timestampPredicate: typeof timestampPredicate; +declare const Assertions$a_titlePredicate: typeof titlePredicate; +declare const Assertions$a_urlPredicate: typeof urlPredicate; +declare const Assertions$a_validateFieldLength: typeof validateFieldLength; +declare namespace Assertions$a { + export { Assertions$a_RGBPredicate as RGBPredicate, Assertions$a_authorNamePredicate as authorNamePredicate, Assertions$a_colorPredicate as colorPredicate, descriptionPredicate$1 as descriptionPredicate, Assertions$a_embedAuthorPredicate as embedAuthorPredicate, Assertions$a_embedFieldPredicate as embedFieldPredicate, Assertions$a_embedFieldsArrayPredicate as embedFieldsArrayPredicate, Assertions$a_embedFooterPredicate as embedFooterPredicate, Assertions$a_fieldInlinePredicate as fieldInlinePredicate, Assertions$a_fieldLengthPredicate as fieldLengthPredicate, Assertions$a_fieldNamePredicate as fieldNamePredicate, Assertions$a_fieldValuePredicate as fieldValuePredicate, Assertions$a_footerTextPredicate as footerTextPredicate, Assertions$a_imageURLPredicate as imageURLPredicate, Assertions$a_timestampPredicate as timestampPredicate, Assertions$a_titlePredicate as titlePredicate, Assertions$a_urlPredicate as urlPredicate, Assertions$a_validateFieldLength as validateFieldLength }; +} + +/** + * Normalizes data that is a rest parameter or an array into an array with a depth of 1. + * + * @typeParam ItemType - The data that must satisfy {@link RestOrArray}. + * @param arr - The (possibly variadic) data to normalize + */ +declare function normalizeArray(arr: RestOrArray): ItemType[]; +/** + * Represents data that may be an array or came from a rest parameter. + * + * @remarks + * This type is used throughout builders to ensure both an array and variadic arguments + * may be used. It is normalized with {@link normalizeArray}. + */ +type RestOrArray = Type[] | [Type[]]; + +/** + * A tuple satisfying the RGB color model. + * + * @see {@link https://developer.mozilla.org/docs/Glossary/RGB} + */ +type RGBTuple = [red: number, green: number, blue: number]; +/** + * The base icon data typically used in payloads. + */ +interface IconData { + /** + * The URL of the icon. + */ + iconURL?: string; + /** + * The proxy URL of the icon. + */ + proxyIconURL?: string; +} +/** + * Represents the author data of an embed. + */ +interface EmbedAuthorData extends IconData, Omit { +} +/** + * Represents the author options of an embed. + */ +interface EmbedAuthorOptions extends Omit { +} +/** + * Represents the footer data of an embed. + */ +interface EmbedFooterData extends IconData, Omit { +} +/** + * Represents the footer options of an embed. + */ +interface EmbedFooterOptions extends Omit { +} +/** + * Represents the image data of an embed. + */ +interface EmbedImageData extends Omit { + /** + * The proxy URL for the image. + */ + proxyURL?: string; +} +/** + * A builder that creates API-compatible JSON data for embeds. + */ +declare class EmbedBuilder { + /** + * The API data associated with this embed. + */ + readonly data: APIEmbed; + /** + * Creates a new embed from API data. + * + * @param data - The API data to create this embed with + */ + constructor(data?: APIEmbed); + /** + * Appends fields to the embed. + * + * @remarks + * This method accepts either an array of fields or a variable number of field parameters. + * The maximum amount of fields that can be added is 25. + * @example + * Using an array: + * ```ts + * const fields: APIEmbedField[] = ...; + * const embed = new EmbedBuilder() + * .addFields(fields); + * ``` + * @example + * Using rest parameters (variadic): + * ```ts + * const embed = new EmbedBuilder() + * .addFields( + * { name: 'Field 1', value: 'Value 1' }, + * { name: 'Field 2', value: 'Value 2' }, + * ); + * ``` + * @param fields - The fields to add + */ + addFields(...fields: RestOrArray): this; + /** + * Removes, replaces, or inserts fields for this embed. + * + * @remarks + * This method behaves similarly + * to {@link https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/splice | Array.prototype.splice()}. + * The maximum amount of fields that can be added is 25. + * + * It's useful for modifying and adjusting order of the already-existing fields of an embed. + * @example + * Remove the first field: + * ```ts + * embed.spliceFields(0, 1); + * ``` + * @example + * Remove the first n fields: + * ```ts + * const n = 4; + * embed.spliceFields(0, n); + * ``` + * @example + * Remove the last field: + * ```ts + * embed.spliceFields(-1, 1); + * ``` + * @param index - The index to start at + * @param deleteCount - The number of fields to remove + * @param fields - The replacing field objects + */ + spliceFields(index: number, deleteCount: number, ...fields: APIEmbedField[]): this; + /** + * Sets the fields for this embed. + * + * @remarks + * This method is an alias for {@link EmbedBuilder.spliceFields}. More specifically, + * it splices the entire array of fields, replacing them with the provided fields. + * + * You can set a maximum of 25 fields. + * @param fields - The fields to set + */ + setFields(...fields: RestOrArray): this; + /** + * Sets the author of this embed. + * + * @param options - The options to use + */ + setAuthor(options: EmbedAuthorOptions | null): this; + /** + * Sets the color of this embed. + * + * @param color - The color to use + */ + setColor(color: RGBTuple | number | null): this; + /** + * Sets the description of this embed. + * + * @param description - The description to use + */ + setDescription(description: string | null): this; + /** + * Sets the footer of this embed. + * + * @param options - The footer to use + */ + setFooter(options: EmbedFooterOptions | null): this; + /** + * Sets the image of this embed. + * + * @param url - The image URL to use + */ + setImage(url: string | null): this; + /** + * Sets the thumbnail of this embed. + * + * @param url - The thumbnail URL to use + */ + setThumbnail(url: string | null): this; + /** + * Sets the timestamp of this embed. + * + * @param timestamp - The timestamp or date to use + */ + setTimestamp(timestamp?: Date | number | null): this; + /** + * Sets the title for this embed. + * + * @param title - The title to use + */ + setTitle(title: string | null): this; + /** + * Sets the URL of this embed. + * + * @param url - The URL to use + */ + setURL(url: string | null): this; + /** + * Serializes this builder to API-compatible JSON data. + * + * @remarks + * This method runs validations on the data before serializing it. + * As such, it may throw an error if the data is invalid. + */ + toJSON(): APIEmbed; +} + +/** + * A builder that creates API-compatible JSON data for string select menu options. + */ +declare class StringSelectMenuOptionBuilder implements JSONEncodable { + data: Partial; + /** + * Creates a new string select menu option from API data. + * + * @param data - The API data to create this string select menu option with + * @example + * Creating a string select menu option from an API data object: + * ```ts + * const selectMenuOption = new SelectMenuOptionBuilder({ + * label: 'catchy label', + * value: '1', + * }); + * ``` + * @example + * Creating a string select menu option using setters and API data: + * ```ts + * const selectMenuOption = new SelectMenuOptionBuilder({ + * default: true, + * value: '1', + * }) + * .setLabel('woah'); + * ``` + */ + constructor(data?: Partial); + /** + * Sets the label for this option. + * + * @param label - The label to use + */ + setLabel(label: string): this; + /** + * Sets the value for this option. + * + * @param value - The value to use + */ + setValue(value: string): this; + /** + * Sets the description for this option. + * + * @param description - The description to use + */ + setDescription(description: string): this; + /** + * Sets whether this option is selected by default. + * + * @param isDefault - Whether this option is selected by default + */ + setDefault(isDefault?: boolean): this; + /** + * Sets the emoji to display for this option. + * + * @param emoji - The emoji to use + */ + setEmoji(emoji: APIMessageComponentEmoji): this; + /** + * {@inheritDoc BaseSelectMenuBuilder.toJSON} + */ + toJSON(): APISelectMenuOption; +} + +declare const idValidator: _sapphire_shapeshift.NumberValidator; +declare const customIdValidator: _sapphire_shapeshift.StringValidator; +declare const emojiValidator: _sapphire_shapeshift.ObjectValidator<{ + name?: string | undefined; + id?: string | undefined; + animated?: boolean | undefined; +}, _sapphire_shapeshift.UndefinedToOptional<{ + name?: string | undefined; + id?: string | undefined; + animated?: boolean | undefined; +}>>; +declare const disabledValidator: _sapphire_shapeshift.BooleanValidator; +declare const buttonLabelValidator: _sapphire_shapeshift.StringValidator; +declare const buttonStyleValidator: _sapphire_shapeshift.NativeEnumValidator; +declare const placeholderValidator$1: _sapphire_shapeshift.StringValidator; +declare const minMaxValidator: _sapphire_shapeshift.NumberValidator; +declare const labelValueDescriptionValidator: _sapphire_shapeshift.StringValidator; +/** + * @deprecated Replaced with selectMenuStringOptionPredicate. + */ +declare const jsonOptionValidator: _sapphire_shapeshift.ObjectValidator<{ + label: string; + value: string; + description: string | undefined; + emoji: _sapphire_shapeshift.UndefinedToOptional<{ + name?: string | undefined; + id?: string | undefined; + animated?: boolean | undefined; + }> | undefined; + default: boolean | undefined; +}, _sapphire_shapeshift.UndefinedToOptional<{ + label: string; + value: string; + description: string | undefined; + emoji: _sapphire_shapeshift.UndefinedToOptional<{ + name?: string | undefined; + id?: string | undefined; + animated?: boolean | undefined; + }> | undefined; + default: boolean | undefined; +}>>; +declare const optionValidator: _sapphire_shapeshift.InstanceValidator; +declare const optionsValidator: _sapphire_shapeshift.ArrayValidator; +declare const optionsLengthValidator: _sapphire_shapeshift.NumberValidator; +declare function validateRequiredSelectMenuParameters(options: StringSelectMenuOptionBuilder[], customId?: string): void; +declare const defaultValidator: _sapphire_shapeshift.BooleanValidator; +declare function validateRequiredSelectMenuOptionParameters(label?: string, value?: string): void; +declare const channelTypesValidator: _sapphire_shapeshift.ArrayValidator; +declare const urlValidator: _sapphire_shapeshift.StringValidator; +declare function validateRequiredButtonParameters(style?: ButtonStyle, label?: string, emoji?: APIMessageComponentEmoji, customId?: string, skuId?: string, url?: string): void; + +declare const Assertions$9_buttonLabelValidator: typeof buttonLabelValidator; +declare const Assertions$9_buttonStyleValidator: typeof buttonStyleValidator; +declare const Assertions$9_channelTypesValidator: typeof channelTypesValidator; +declare const Assertions$9_customIdValidator: typeof customIdValidator; +declare const Assertions$9_defaultValidator: typeof defaultValidator; +declare const Assertions$9_disabledValidator: typeof disabledValidator; +declare const Assertions$9_emojiValidator: typeof emojiValidator; +declare const Assertions$9_idValidator: typeof idValidator; +declare const Assertions$9_jsonOptionValidator: typeof jsonOptionValidator; +declare const Assertions$9_labelValueDescriptionValidator: typeof labelValueDescriptionValidator; +declare const Assertions$9_minMaxValidator: typeof minMaxValidator; +declare const Assertions$9_optionValidator: typeof optionValidator; +declare const Assertions$9_optionsLengthValidator: typeof optionsLengthValidator; +declare const Assertions$9_optionsValidator: typeof optionsValidator; +declare const Assertions$9_urlValidator: typeof urlValidator; +declare const Assertions$9_validateRequiredButtonParameters: typeof validateRequiredButtonParameters; +declare const Assertions$9_validateRequiredSelectMenuOptionParameters: typeof validateRequiredSelectMenuOptionParameters; +declare const Assertions$9_validateRequiredSelectMenuParameters: typeof validateRequiredSelectMenuParameters; +declare namespace Assertions$9 { + export { Assertions$9_buttonLabelValidator as buttonLabelValidator, Assertions$9_buttonStyleValidator as buttonStyleValidator, Assertions$9_channelTypesValidator as channelTypesValidator, Assertions$9_customIdValidator as customIdValidator, Assertions$9_defaultValidator as defaultValidator, Assertions$9_disabledValidator as disabledValidator, Assertions$9_emojiValidator as emojiValidator, Assertions$9_idValidator as idValidator, Assertions$9_jsonOptionValidator as jsonOptionValidator, Assertions$9_labelValueDescriptionValidator as labelValueDescriptionValidator, Assertions$9_minMaxValidator as minMaxValidator, Assertions$9_optionValidator as optionValidator, Assertions$9_optionsLengthValidator as optionsLengthValidator, Assertions$9_optionsValidator as optionsValidator, placeholderValidator$1 as placeholderValidator, Assertions$9_urlValidator as urlValidator, Assertions$9_validateRequiredButtonParameters as validateRequiredButtonParameters, Assertions$9_validateRequiredSelectMenuOptionParameters as validateRequiredSelectMenuOptionParameters, Assertions$9_validateRequiredSelectMenuParameters as validateRequiredSelectMenuParameters }; +} + +/** + * Any action row component data represented as an object. + */ +type AnyAPIActionRowComponent = APIActionRowComponent | APIComponentInActionRow | APIMessageComponent | APIModalComponent; +/** + * The base component builder that contains common symbols for all sorts of components. + * + * @typeParam DataType - The type of internal API data that is stored within the component + */ +declare abstract class ComponentBuilder> = APIBaseComponent> implements JSONEncodable { + /** + * The API data associated with this component. + */ + readonly data: Partial; + /** + * Serializes this builder to API-compatible JSON data. + * + * @remarks + * This method runs validations on the data before serializing it. + * As such, it may throw an error if the data is invalid. + */ + abstract toJSON(): AnyAPIActionRowComponent; + /** + * Constructs a new kind of component. + * + * @param data - The data to construct a component out of + */ + constructor(data: Partial); + /** + * Sets the id (not the custom id) for this component. + * + * @param id - The id for this component + */ + setId(id: number): this; + /** + * Clears the id of this component, defaulting to a default incremented id. + */ + clearId(): this; +} + +/** + * A builder that creates API-compatible JSON data for buttons. + */ +declare class ButtonBuilder extends ComponentBuilder { + /** + * Creates a new button from API data. + * + * @param data - The API data to create this button with + * @example + * Creating a button from an API data object: + * ```ts + * const button = new ButtonBuilder({ + * custom_id: 'a cool button', + * style: ButtonStyle.Primary, + * label: 'Click Me', + * emoji: { + * name: 'smile', + * id: '123456789012345678', + * }, + * }); + * ``` + * @example + * Creating a button using setters and API data: + * ```ts + * const button = new ButtonBuilder({ + * style: ButtonStyle.Secondary, + * label: 'Click Me', + * }) + * .setEmoji({ name: '🙂' }) + * .setCustomId('another cool button'); + * ``` + */ + constructor(data?: Partial); + /** + * Sets the style of this button. + * + * @param style - The style to use + */ + setStyle(style: ButtonStyle): this; + /** + * Sets the URL for this button. + * + * @remarks + * This method is only available to buttons using the `Link` button style. + * Only three types of URL schemes are currently supported: `https://`, `http://`, and `discord://`. + * @param url - The URL to use + */ + setURL(url: string): this; + /** + * Sets the custom id for this button. + * + * @remarks + * This method is only applicable to buttons that are not using the `Link` button style. + * @param customId - The custom id to use + */ + setCustomId(customId: string): this; + /** + * Sets the SKU id that represents a purchasable SKU for this button. + * + * @remarks Only available when using premium-style buttons. + * @param skuId - The SKU id to use + */ + setSKUId(skuId: Snowflake): this; + /** + * Sets the emoji to display on this button. + * + * @param emoji - The emoji to use + */ + setEmoji(emoji: APIMessageComponentEmoji): this; + /** + * Sets whether this button is disabled. + * + * @param disabled - Whether to disable this button + */ + setDisabled(disabled?: boolean): this; + /** + * Sets the label for this button. + * + * @param label - The label to use + */ + setLabel(label: string): this; + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON(): APIButtonComponent; +} + +/** + * The base select menu builder that contains common symbols for select menu builders. + * + * @typeParam SelectMenuType - The type of select menu this would be instantiated for. + */ +declare abstract class BaseSelectMenuBuilder extends ComponentBuilder { + /** + * Sets the placeholder for this select menu. + * + * @param placeholder - The placeholder to use + */ + setPlaceholder(placeholder: string): this; + /** + * Sets the minimum values that must be selected in the select menu. + * + * @param minValues - The minimum values that must be selected + */ + setMinValues(minValues: number): this; + /** + * Sets the maximum values that can be selected in the select menu. + * + * @param maxValues - The maximum values that can be selected + */ + setMaxValues(maxValues: number): this; + /** + * Sets the custom id for this select menu. + * + * @param customId - The custom id to use + */ + setCustomId(customId: string): this; + /** + * Sets whether this select menu is disabled. + * + * @param disabled - Whether this select menu is disabled + */ + setDisabled(disabled?: boolean): this; + /** + * Sets whether this select menu is required. + * + * @remarks Only for use in modals. + * @param required - Whether this select menu is required + */ + setRequired(required?: boolean): this; + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON(): SelectMenuType; +} + +/** + * A builder that creates API-compatible JSON data for channel select menus. + */ +declare class ChannelSelectMenuBuilder extends BaseSelectMenuBuilder { + /** + * Creates a new select menu from API data. + * + * @param data - The API data to create this select menu with + * @example + * Creating a select menu from an API data object: + * ```ts + * const selectMenu = new ChannelSelectMenuBuilder({ + * custom_id: 'a cool select menu', + * placeholder: 'select an option', + * max_values: 2, + * }); + * ``` + * @example + * Creating a select menu using setters and API data: + * ```ts + * const selectMenu = new ChannelSelectMenuBuilder({ + * custom_id: 'a cool select menu', + * }) + * .addChannelTypes(ChannelType.GuildText, ChannelType.GuildAnnouncement) + * .setMinValues(2); + * ``` + */ + constructor(data?: Partial); + /** + * Adds channel types to this select menu. + * + * @param types - The channel types to use + */ + addChannelTypes(...types: RestOrArray): this; + /** + * Sets channel types for this select menu. + * + * @param types - The channel types to use + */ + setChannelTypes(...types: RestOrArray): this; + /** + * Adds default channels to this auto populated select menu. + * + * @param channels - The channels to add + */ + addDefaultChannels(...channels: RestOrArray): this; + /** + * Sets default channels for this auto populated select menu. + * + * @param channels - The channels to set + */ + setDefaultChannels(...channels: RestOrArray): this; + /** + * {@inheritDoc BaseSelectMenuBuilder.toJSON} + */ + toJSON(): APIChannelSelectComponent; +} + +/** + * A builder that creates API-compatible JSON data for mentionable select menus. + */ +declare class MentionableSelectMenuBuilder extends BaseSelectMenuBuilder { + /** + * Creates a new select menu from API data. + * + * @param data - The API data to create this select menu with + * @example + * Creating a select menu from an API data object: + * ```ts + * const selectMenu = new MentionableSelectMenuBuilder({ + * custom_id: 'a cool select menu', + * placeholder: 'select an option', + * max_values: 2, + * }); + * ``` + * @example + * Creating a select menu using setters and API data: + * ```ts + * const selectMenu = new MentionableSelectMenuBuilder({ + * custom_id: 'a cool select menu', + * }) + * .setMinValues(1); + * ``` + */ + constructor(data?: Partial); + /** + * Adds default roles to this auto populated select menu. + * + * @param roles - The roles to add + */ + addDefaultRoles(...roles: RestOrArray): this; + /** + * Adds default users to this auto populated select menu. + * + * @param users - The users to add + */ + addDefaultUsers(...users: RestOrArray): this; + /** + * Adds default values to this auto populated select menu. + * + * @param values - The values to add + */ + addDefaultValues(...values: RestOrArray | APISelectMenuDefaultValue>): this; + /** + * Sets default values for this auto populated select menu. + * + * @param values - The values to set + */ + setDefaultValues(...values: RestOrArray | APISelectMenuDefaultValue>): this; +} + +/** + * A builder that creates API-compatible JSON data for role select menus. + */ +declare class RoleSelectMenuBuilder extends BaseSelectMenuBuilder { + /** + * Creates a new select menu from API data. + * + * @param data - The API data to create this select menu with + * @example + * Creating a select menu from an API data object: + * ```ts + * const selectMenu = new RoleSelectMenuBuilder({ + * custom_id: 'a cool select menu', + * placeholder: 'select an option', + * max_values: 2, + * }); + * ``` + * @example + * Creating a select menu using setters and API data: + * ```ts + * const selectMenu = new RoleSelectMenuBuilder({ + * custom_id: 'a cool select menu', + * }) + * .setMinValues(1); + * ``` + */ + constructor(data?: Partial); + /** + * Adds default roles to this auto populated select menu. + * + * @param roles - The roles to add + */ + addDefaultRoles(...roles: RestOrArray): this; + /** + * Sets default roles for this auto populated select menu. + * + * @param roles - The roles to set + */ + setDefaultRoles(...roles: RestOrArray): this; +} + +/** + * A builder that creates API-compatible JSON data for string select menus. + */ +declare class StringSelectMenuBuilder extends BaseSelectMenuBuilder { + /** + * The options within this select menu. + */ + readonly options: StringSelectMenuOptionBuilder[]; + /** + * Creates a new select menu from API data. + * + * @param data - The API data to create this select menu with + * @example + * Creating a select menu from an API data object: + * ```ts + * const selectMenu = new StringSelectMenuBuilder({ + * custom_id: 'a cool select menu', + * placeholder: 'select an option', + * max_values: 2, + * options: [ + * { label: 'option 1', value: '1' }, + * { label: 'option 2', value: '2' }, + * { label: 'option 3', value: '3' }, + * ], + * }); + * ``` + * @example + * Creating a select menu using setters and API data: + * ```ts + * const selectMenu = new StringSelectMenuBuilder({ + * custom_id: 'a cool select menu', + * }) + * .setMinValues(1) + * .addOptions({ + * label: 'Catchy', + * value: 'catch', + * }); + * ``` + */ + constructor(data?: Partial); + /** + * Adds options to this select menu. + * + * @param options - The options to add + */ + addOptions(...options: RestOrArray): this; + /** + * Sets the options for this select menu. + * + * @param options - The options to set + */ + setOptions(...options: RestOrArray): this; + /** + * Removes, replaces, or inserts options for this select menu. + * + * @remarks + * This method behaves similarly + * to {@link https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/splice | Array.prototype.splice()}. + * It's useful for modifying and adjusting the order of existing options. + * @example + * Remove the first option: + * ```ts + * selectMenu.spliceOptions(0, 1); + * ``` + * @example + * Remove the first n option: + * ```ts + * const n = 4; + * selectMenu.spliceOptions(0, n); + * ``` + * @example + * Remove the last option: + * ```ts + * selectMenu.spliceOptions(-1, 1); + * ``` + * @param index - The index to start at + * @param deleteCount - The number of options to remove + * @param options - The replacing option objects or builders + */ + spliceOptions(index: number, deleteCount: number, ...options: RestOrArray): this; + /** + * {@inheritDoc BaseSelectMenuBuilder.toJSON} + */ + toJSON(): APIStringSelectComponent; +} + +/** + * A builder that creates API-compatible JSON data for user select menus. + */ +declare class UserSelectMenuBuilder extends BaseSelectMenuBuilder { + /** + * Creates a new select menu from API data. + * + * @param data - The API data to create this select menu with + * @example + * Creating a select menu from an API data object: + * ```ts + * const selectMenu = new UserSelectMenuBuilder({ + * custom_id: 'a cool select menu', + * placeholder: 'select an option', + * max_values: 2, + * }); + * ``` + * @example + * Creating a select menu using setters and API data: + * ```ts + * const selectMenu = new UserSelectMenuBuilder({ + * custom_id: 'a cool select menu', + * }) + * .setMinValues(1); + * ``` + */ + constructor(data?: Partial); + /** + * Adds default users to this auto populated select menu. + * + * @param users - The users to add + */ + addDefaultUsers(...users: RestOrArray): this; + /** + * Sets default users for this auto populated select menu. + * + * @param users - The users to set + */ + setDefaultUsers(...users: RestOrArray): this; +} + +/** + * A builder that creates API-compatible JSON data for text inputs. + */ +declare class TextInputBuilder extends ComponentBuilder implements Equatable> { + /** + * Creates a new text input from API data. + * + * @param data - The API data to create this text input with + * @example + * Creating a text input from an API data object: + * ```ts + * const textInput = new TextInputBuilder({ + * custom_id: 'a cool text input', + * placeholder: 'Type something', + * style: TextInputStyle.Short, + * }); + * ``` + * @example + * Creating a text input using setters and API data: + * ```ts + * const textInput = new TextInputBuilder({ + * placeholder: 'Type something else', + * }) + * .setCustomId('woah') + * .setStyle(TextInputStyle.Paragraph); + * ``` + */ + constructor(data?: APITextInputComponent & { + type?: ComponentType.TextInput; + }); + /** + * Sets the custom id for this text input. + * + * @param customId - The custom id to use + */ + setCustomId(customId: string): this; + /** + * Sets the label for this text input. + * + * @param label - The label to use + * @deprecated Use a label builder to create a label (and optionally a description) instead. + */ + setLabel(label: string): this; + /** + * Sets the style for this text input. + * + * @param style - The style to use + */ + setStyle(style: TextInputStyle): this; + /** + * Sets the minimum length of text for this text input. + * + * @param minLength - The minimum length of text for this text input + */ + setMinLength(minLength: number): this; + /** + * Sets the maximum length of text for this text input. + * + * @param maxLength - The maximum length of text for this text input + */ + setMaxLength(maxLength: number): this; + /** + * Sets the placeholder for this text input. + * + * @param placeholder - The placeholder to use + */ + setPlaceholder(placeholder: string): this; + /** + * Sets the value for this text input. + * + * @param value - The value to use + */ + setValue(value: string): this; + /** + * Sets whether this text input is required. + * + * @param required - Whether this text input is required + */ + setRequired(required?: boolean): this; + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON(): APITextInputComponent; + /** + * Whether this is equal to another structure. + */ + equals(other: APITextInputComponent | JSONEncodable): boolean; +} + +/** + * The builders that may be used for modals. + */ +type ModalComponentBuilder = ActionRowBuilder | ModalActionRowComponentBuilder; +/** + * The builders that may be used within an action row for messages. + */ +type MessageActionRowComponentBuilder = ButtonBuilder | ChannelSelectMenuBuilder | MentionableSelectMenuBuilder | RoleSelectMenuBuilder | StringSelectMenuBuilder | UserSelectMenuBuilder; +/** + * The builders that may be used within an action row for modals. + */ +type ModalActionRowComponentBuilder = TextInputBuilder; +/** + * Any builder. + */ +type AnyComponentBuilder = MessageActionRowComponentBuilder | ModalActionRowComponentBuilder; +/** + * A builder that creates API-compatible JSON data for action rows. + * + * @typeParam ComponentType - The types of components this action row holds + */ +declare class ActionRowBuilder extends ComponentBuilder> { + /** + * The components within this action row. + */ + readonly components: ComponentType[]; + /** + * Creates a new action row from API data. + * + * @param data - The API data to create this action row with + * @example + * Creating an action row from an API data object: + * ```ts + * const actionRow = new ActionRowBuilder({ + * components: [ + * { + * custom_id: "custom id", + * label: "Type something", + * style: TextInputStyle.Short, + * type: ComponentType.TextInput, + * }, + * ], + * }); + * ``` + * @example + * Creating an action row using setters and API data: + * ```ts + * const actionRow = new ActionRowBuilder({ + * components: [ + * { + * custom_id: "custom id", + * label: "Click me", + * style: ButtonStyle.Primary, + * type: ComponentType.Button, + * }, + * ], + * }) + * .addComponents(button2, button3); + * ``` + */ + constructor({ components, ...data }?: Partial>); + /** + * Adds components to this action row. + * + * @param components - The components to add + */ + addComponents(...components: RestOrArray): this; + /** + * Sets components for this action row. + * + * @param components - The components to set + */ + setComponents(...components: RestOrArray): this; + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON(): APIActionRowComponent>; +} + +/** + * A builder that creates API-compatible JSON data for checkboxes. + */ +declare class CheckboxBuilder extends ComponentBuilder { + /** + * Creates a new checkbox from API data. + * + * @param data - The API data to create this checkbox with + * @example + * Creating a checkbox from an API data object: + * ```ts + * const checkbox = new CheckboxBuilder({ + * custom_id: 'accept_terms', + * default: false, + * }); + * ``` + * @example + * Creating a checkbox using setters and API data: + * ```ts + * const checkbox = new CheckboxBuilder() + * .setCustomId('subscribe_newsletter') + * .setDefault(true); + * ``` + */ + constructor(data?: Partial); + /** + * Sets the custom id of this checkbox. + * + * @param customId - The custom id to use + */ + setCustomId(customId: string): this; + /** + * Sets whether this checkbox is checked by default. + * + * @param isDefault - Whether the checkbox should be checked by default + */ + setDefault(isDefault: boolean): this; + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON(): APICheckboxComponent; +} + +/** + * A builder that creates API-compatible JSON data for checkbox group options. + */ +declare class CheckboxGroupOptionBuilder implements JSONEncodable { + data: Partial; + /** + * Creates a new checkbox group option from API data. + * + * @param data - The API data to create this checkbox group option with + * @example + * Creating a checkbox group option from an API data object: + * ```ts + * const option = new CheckboxGroupOptionBuilder({ + * label: 'Option 1', + * value: 'option_1', + * }); + * ``` + * @example + * Creating a checkbox group option using setters and API data: + * ```ts + * const option = new CheckboxGroupOptionBuilder() + * .setLabel('Option 2') + * .setValue('option_2'); + * ``` + */ + constructor(data?: Partial); + /** + * Sets the label for this option. + * + * @param label - The label to use + */ + setLabel(label: string): this; + /** + * Sets the value for this option. + * + * @param value - The value to use + */ + setValue(value: string): this; + /** + * Sets the description for this option. + * + * @param description - The description to use + */ + setDescription(description: string): this; + /** + * Sets whether this option is selected by default. + * + * @param isDefault - Whether the option should be selected by default + */ + setDefault(isDefault: boolean): this; + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON(): APICheckboxGroupOption; +} + +/** + * A builder that creates API-compatible JSON data for checkbox groups. + */ +declare class CheckboxGroupBuilder extends ComponentBuilder { + /** + * The options within this checkbox group. + */ + readonly options: CheckboxGroupOptionBuilder[]; + /** + * Creates a new checkbox group from API data. + * + * @param data - The API data to create this checkbox group with + * @example + * Creating a checkbox group from an API data object: + * ```ts + * const checkboxGroup = new CheckboxGroupBuilder({ + * custom_id: 'select_options', + * options: [ + * { label: 'Option 1', value: 'option_1' }, + * { label: 'Option 2', value: 'option_2' }, + * ], + * }); + * ``` + * @example + * Creating a checkbox group using setters and API data: + * ```ts + * const checkboxGroup = new CheckboxGroupBuilder() + * .setCustomId('choose_items') + * .setOptions([ + * { label: 'Item A', value: 'item_a' }, + * { label: 'Item B', value: 'item_b' }, + * ]) + * .setMinValues(1) + * .setMaxValues(2); + * ``` + */ + constructor(data?: Partial); + /** + * Sets the custom id of this checkbox group. + * + * @param customId - The custom id to use + */ + setCustomId(customId: string): this; + /** + * Adds options to this checkbox group. + * + * @param options - The options to add + */ + addOptions(...options: RestOrArray): this; + /** + * Sets the options for this checkbox group. + * + * @param options - The options to use + */ + setOptions(...options: RestOrArray): this; + /** + * Removes, replaces, or inserts options for this checkbox group. + * + * @remarks + * This method behaves similarly + * to {@link https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/splice | Array.prototype.splice()}. + * It's useful for modifying and adjusting the order of existing options. + * @param index - The index to start at + * @param deleteCount - The number of options to remove + * @param options - The replacing option objects or builders + */ + spliceOptions(index: number, deleteCount: number, ...options: RestOrArray): this; + /** + * Sets the minimum number of options that must be selected. + * + * @param minValues - The minimum number of options that must be selected + */ + setMinValues(minValues: number): this; + /** + * Sets the maximum number of options that can be selected. + * + * @param maxValues - The maximum number of options that can be selected + */ + setMaxValues(maxValues: number): this; + /** + * Sets whether selecting options is required. + * + * @param required - Whether selecting options is required + */ + setRequired(required: boolean): this; + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON(): APICheckboxGroupComponent; +} + +/** + * A builder that creates API-compatible JSON data for radio group options. + */ +declare class RadioGroupOptionBuilder implements JSONEncodable { + data: Partial; + /** + * Creates a new radio group option from API data. + * + * @param data - The API data to create this radio group option with + * @example + * Creating a radio group option from an API data object: + * ```ts + * const option = new RadioGroupOptionBuilder({ + * label: 'Option 1', + * value: 'option_1', + * }); + * ``` + * @example + * Creating a radio group option using setters and API data: + * ```ts + * const option = new RadioGroupOptionBuilder() + * .setLabel('Option 2') + * .setValue('option_2'); + * ``` + */ + constructor(data?: Partial); + /** + * Sets the label for this option. + * + * @param label - The label to use + */ + setLabel(label: string): this; + /** + * Sets the value for this option. + * + * @param value - The value to use + */ + setValue(value: string): this; + /** + * Sets the description for this option. + * + * @param description - The description to use + */ + setDescription(description: string): this; + /** + * Sets whether this option is selected by default. + * + * @param isDefault - Whether the option should be selected by default + */ + setDefault(isDefault: boolean): this; + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON(): APIRadioGroupOption; +} + +/** + * A builder that creates API-compatible JSON data for radio groups. + */ +declare class RadioGroupBuilder extends ComponentBuilder { + /** + * The options within this radio group. + */ + readonly options: RadioGroupOptionBuilder[]; + /** + * Creates a new radio group from API data. + * + * @param data - The API data to create this radio group with + * @example + * Creating a radio group from an API data object: + * ```ts + * const radioGroup = new RadioGroupBuilder({ + * custom_id: 'select_options', + * options: [ + * { label: 'Option 1', value: 'option_1' }, + * { label: 'Option 2', value: 'option_2' }, + * ], + * }); + * ``` + * @example + * Creating a radio group using setters and API data: + * ```ts + * const radioGroup = new RadioGroupBuilder() + * .setCustomId('choose_items') + * .setOptions([ + * { label: 'Item A', value: 'item_a' }, + * { label: 'Item B', value: 'item_b' }, + * ]) + * ``` + */ + constructor(data?: Partial); + /** + * Sets the custom id of this radio group. + * + * @param customId - The custom id to use + */ + setCustomId(customId: string): this; + /** + * Adds options to this radio group. + * + * @param options - The options to add + */ + addOptions(...options: RestOrArray): this; + /** + * Sets the options for this radio group. + * + * @param options - The options to use + */ + setOptions(...options: RestOrArray): this; + /** + * Removes, replaces, or inserts options for this radio group. + * + * @remarks + * This method behaves similarly + * to {@link https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/splice | Array.prototype.splice()}. + * It's useful for modifying and adjusting the order of existing options. + * @param index - The index to start at + * @param deleteCount - The number of options to remove + * @param options - The replacing option objects or builders + */ + spliceOptions(index: number, deleteCount: number, ...options: RestOrArray): this; + /** + * Sets whether selecting options is required. + * + * @param required - Whether selecting options is required + */ + setRequired(required: boolean): this; + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON(): APIRadioGroupComponent; +} + +/** + * A builder that creates API-compatible JSON data for file uploads. + */ +declare class FileUploadBuilder extends ComponentBuilder { + /** + * Creates a new file upload. + * + * @param data - The API data to create this file upload with + * @example + * Creating a file upload from an API data object: + * ```ts + * const fileUpload = new FileUploadBuilder({ + * custom_id: "file_upload", + * min_values: 2, + * max_values: 5, + * }); + * ``` + * @example + * Creating a file upload using setters and API data: + * ```ts + * const fileUpload = new FileUploadBuilder({ + * custom_id: "file_upload", + * min_values: 2, + * max_values: 5, + * }).setRequired(); + * ``` + */ + constructor(data?: Partial); + /** + * Sets the custom id for this file upload. + * + * @param customId - The custom id to use + */ + setCustomId(customId: string): this; + /** + * Sets the minimum number of file uploads required. + * + * @param minValues - The minimum values that must be uploaded + */ + setMinValues(minValues: number): this; + /** + * Clears the minimum values. + */ + clearMinValues(): this; + /** + * Sets the maximum number of file uploads required. + * + * @param maxValues - The maximum values that can be uploaded + */ + setMaxValues(maxValues: number): this; + /** + * Clears the maximum values. + */ + clearMaxValues(): this; + /** + * Sets whether this file upload is required. + * + * @param required - Whether this file upload is required + */ + setRequired(required?: boolean): this; + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON(): APIFileUploadComponent; +} + +interface LabelBuilderData extends Partial> { + component?: ChannelSelectMenuBuilder | CheckboxBuilder | CheckboxGroupBuilder | FileUploadBuilder | MentionableSelectMenuBuilder | RadioGroupBuilder | RoleSelectMenuBuilder | StringSelectMenuBuilder | TextInputBuilder | UserSelectMenuBuilder; +} +/** + * A builder that creates API-compatible JSON data for labels. + */ +declare class LabelBuilder extends ComponentBuilder { + /** + * @internal + */ + readonly data: LabelBuilderData; + /** + * Creates a new label. + * + * @param data - The API data to create this label with + * @example + * Creating a label from an API data object: + * ```ts + * const label = new LabelBuilder({ + * label: "label", + * component, + * }); + * ``` + * @example + * Creating a label using setters and API data: + * ```ts + * const label = new LabelBuilder({ + * label: 'label', + * component, + * }).setLabel('new text'); + * ``` + */ + constructor(data?: Partial); + /** + * Sets the label for this label. + * + * @param label - The label to use + */ + setLabel(label: string): this; + /** + * Sets the description for this label. + * + * @param description - The description to use + */ + setDescription(description: string): this; + /** + * Clears the description for this label. + */ + clearDescription(): this; + /** + * Sets a string select menu component to this label. + * + * @param input - A function that returns a component builder or an already built builder + */ + setStringSelectMenuComponent(input: APIStringSelectComponent | StringSelectMenuBuilder | ((builder: StringSelectMenuBuilder) => StringSelectMenuBuilder)): this; + /** + * Sets a user select menu component to this label. + * + * @param input - A function that returns a component builder or an already built builder + */ + setUserSelectMenuComponent(input: APIUserSelectComponent | UserSelectMenuBuilder | ((builder: UserSelectMenuBuilder) => UserSelectMenuBuilder)): this; + /** + * Sets a role select menu component to this label. + * + * @param input - A function that returns a component builder or an already built builder + */ + setRoleSelectMenuComponent(input: APIRoleSelectComponent | RoleSelectMenuBuilder | ((builder: RoleSelectMenuBuilder) => RoleSelectMenuBuilder)): this; + /** + * Sets a mentionable select menu component to this label. + * + * @param input - A function that returns a component builder or an already built builder + */ + setMentionableSelectMenuComponent(input: APIMentionableSelectComponent | MentionableSelectMenuBuilder | ((builder: MentionableSelectMenuBuilder) => MentionableSelectMenuBuilder)): this; + /** + * Sets a channel select menu component to this label. + * + * @param input - A function that returns a component builder or an already built builder + */ + setChannelSelectMenuComponent(input: APIChannelSelectComponent | ChannelSelectMenuBuilder | ((builder: ChannelSelectMenuBuilder) => ChannelSelectMenuBuilder)): this; + /** + * Sets a text input component to this label. + * + * @param input - A function that returns a component builder or an already built builder + */ + setTextInputComponent(input: APITextInputComponent | TextInputBuilder | ((builder: TextInputBuilder) => TextInputBuilder)): this; + /** + * Sets a file upload component to this label. + * + * @param input - A function that returns a component builder or an already built builder + */ + setFileUploadComponent(input: APIFileUploadComponent | FileUploadBuilder | ((builder: FileUploadBuilder) => FileUploadBuilder)): this; + /** + * Sets a checkbox component to this label. + * + * @param input - A function that returns a component builder or an already built builder + */ + setCheckboxComponent(input: APICheckboxComponent | CheckboxBuilder | ((builder: CheckboxBuilder) => CheckboxBuilder)): this; + /** + * Sets a checkbox group component to this label. + * + * @param input - A function that returns a component builder or an already built builder + */ + setCheckboxGroupComponent(input: APICheckboxGroupComponent | CheckboxGroupBuilder | ((builder: CheckboxGroupBuilder) => CheckboxGroupBuilder)): this; + /** + * Sets a radio group component to this label. + * + * @param input - A function that returns a component builder or an already built builder + */ + setRadioGroupComponent(input: APIRadioGroupComponent | RadioGroupBuilder | ((builder: RadioGroupBuilder) => RadioGroupBuilder)): this; + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON(): APILabelComponent; +} + +declare class FileBuilder extends ComponentBuilder { + /** + * Creates a new file from API data. + * + * @param data - The API data to create this file with + * @example + * Creating a file from an API data object: + * ```ts + * const file = new FileBuilder({ + * spoiler: true, + * file: { + * url: 'attachment://file.png', + * }, + * }); + * ``` + * @example + * Creating a file using setters and API data: + * ```ts + * const file = new FileBuilder({ + * file: { + * url: 'attachment://image.jpg', + * }, + * }) + * .setSpoiler(false); + * ``` + */ + constructor(data?: Partial); + /** + * Sets the spoiler status of this file. + * + * @param spoiler - The spoiler status to use + */ + setSpoiler(spoiler?: boolean): this; + /** + * Sets the media URL of this file. + * + * @param url - The URL to use + */ + setURL(url: string): this; + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON(): APIFileComponent; +} + +declare class SeparatorBuilder extends ComponentBuilder { + /** + * Creates a new separator from API data. + * + * @param data - The API data to create this separator with + * @example + * Creating a separator from an API data object: + * ```ts + * const separator = new SeparatorBuilder({ + * spacing: SeparatorSpacingSize.Small, + * divider: true, + * }); + * ``` + * @example + * Creating a separator using setters and API data: + * ```ts + * const separator = new SeparatorBuilder({ + * spacing: SeparatorSpacingSize.Large, + * }) + * .setDivider(false); + * ``` + */ + constructor(data?: Partial); + /** + * Sets whether this separator should show a divider line. + * + * @param divider - Whether to show a divider line + */ + setDivider(divider?: boolean): this; + /** + * Sets the spacing of this separator. + * + * @param spacing - The spacing to use + */ + setSpacing(spacing: SeparatorSpacingSize): this; + /** + * Clears the spacing of this separator. + */ + clearSpacing(): this; + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON(): APISeparatorComponent; +} + +declare class TextDisplayBuilder extends ComponentBuilder { + /** + * Creates a new text display from API data. + * + * @param data - The API data to create this text display with + * @example + * Creating a text display from an API data object: + * ```ts + * const textDisplay = new TextDisplayBuilder({ + * content: 'some text', + * }); + * ``` + * @example + * Creating a text display using setters and API data: + * ```ts + * const textDisplay = new TextDisplayBuilder({ + * content: 'old text', + * }) + * .setContent('new text'); + * ``` + */ + constructor(data?: Partial); + /** + * Sets the text of this text display. + * + * @param content - The text to use + */ + setContent(content: string): this; + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON(): APITextDisplayComponent; +} + +/** + * The builders that may be used within a container. + */ +type ContainerComponentBuilder = ActionRowBuilder | FileBuilder | MediaGalleryBuilder | SectionBuilder | SeparatorBuilder | TextDisplayBuilder; +/** + * A builder that creates API-compatible JSON data for a container. + */ +declare class ContainerBuilder extends ComponentBuilder { + /** + * The components within this container. + */ + readonly components: ContainerComponentBuilder[]; + /** + * Creates a new container from API data. + * + * @param data - The API data to create this container with + * @example + * Creating a container from an API data object: + * ```ts + * const container = new ContainerBuilder({ + * components: [ + * { + * content: "Some text here", + * type: ComponentType.TextDisplay, + * }, + * ], + * }); + * ``` + * @example + * Creating a container using setters and API data: + * ```ts + * const container = new ContainerBuilder({ + * components: [ + * { + * content: "# Heading", + * type: ComponentType.TextDisplay, + * }, + * ], + * }) + * .addSeparatorComponents(separator) + * .addSectionComponents(section); + * ``` + */ + constructor({ components, ...data }?: Partial); + /** + * Sets the accent color of this container. + * + * @param color - The color to use + */ + setAccentColor(color?: RGBTuple | number): this; + /** + * Clears the accent color of this container. + */ + clearAccentColor(): this; + /** + * Adds action row components to this container. + * + * @param components - The action row components to add + */ + addActionRowComponents(...components: RestOrArray | APIActionRowComponent | ((builder: ActionRowBuilder) => ActionRowBuilder)>): this; + /** + * Adds file components to this container. + * + * @param components - The file components to add + */ + addFileComponents(...components: RestOrArray FileBuilder)>): this; + /** + * Adds media gallery components to this container. + * + * @param components - The media gallery components to add + */ + addMediaGalleryComponents(...components: RestOrArray MediaGalleryBuilder)>): this; + /** + * Adds section components to this container. + * + * @param components - The section components to add + */ + addSectionComponents(...components: RestOrArray SectionBuilder)>): this; + /** + * Adds separator components to this container. + * + * @param components - The separator components to add + */ + addSeparatorComponents(...components: RestOrArray SeparatorBuilder)>): this; + /** + * Adds text display components to this container. + * + * @param components - The text display components to add + */ + addTextDisplayComponents(...components: RestOrArray TextDisplayBuilder)>): this; + /** + * Removes, replaces, or inserts components for this container. + * + * @param index - The index to start removing, replacing or inserting components + * @param deleteCount - The amount of components to remove + * @param components - The components to set + */ + spliceComponents(index: number, deleteCount: number, ...components: RestOrArray): this; + /** + * Sets the spoiler status of this container. + * + * @param spoiler - The spoiler status to use + */ + setSpoiler(spoiler?: boolean): this; + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON(): APIContainerComponent; +} + +declare class MediaGalleryItemBuilder implements JSONEncodable { + /** + * The API data associated with this media gallery item. + */ + readonly data: Partial; + /** + * Creates a new media gallery item from API data. + * + * @param data - The API data to create this media gallery item with + * @example + * Creating a media gallery item from an API data object: + * ```ts + * const item = new MediaGalleryItemBuilder({ + * description: "Some text here", + * media: { + * url: 'https://cdn.discordapp.com/embed/avatars/2.png', + * }, + * }); + * ``` + * @example + * Creating a media gallery item using setters and API data: + * ```ts + * const item = new MediaGalleryItemBuilder({ + * media: { + * url: 'https://cdn.discordapp.com/embed/avatars/5.png', + * }, + * }) + * .setDescription("alt text"); + * ``` + */ + constructor(data?: Partial); + /** + * Sets the description of this media gallery item. + * + * @param description - The description to use + */ + setDescription(description: string): this; + /** + * Clears the description of this media gallery item. + */ + clearDescription(): this; + /** + * Sets the spoiler status of this media gallery item. + * + * @param spoiler - The spoiler status to use + */ + setSpoiler(spoiler?: boolean): this; + /** + * Sets the media URL of this media gallery item. + * + * @param url - The URL to use + */ + setURL(url: string): this; + /** + * Serializes this builder to API-compatible JSON data. + * + * @remarks + * This method runs validations on the data before serializing it. + * As such, it may throw an error if the data is invalid. + */ + toJSON(): APIMediaGalleryItem; +} + +/** + * A builder that creates API-compatible JSON data for a container. + */ +declare class MediaGalleryBuilder extends ComponentBuilder { + /** + * The components within this container. + */ + readonly items: MediaGalleryItemBuilder[]; + /** + * Creates a new media gallery from API data. + * + * @param data - The API data to create this media gallery with + * @example + * Creating a media gallery from an API data object: + * ```ts + * const mediaGallery = new MediaGalleryBuilder({ + * items: [ + * { + * description: "Some text here", + * media: { + * url: 'https://cdn.discordapp.com/embed/avatars/2.png', + * }, + * }, + * ], + * }); + * ``` + * @example + * Creating a media gallery using setters and API data: + * ```ts + * const mediaGallery = new MediaGalleryBuilder({ + * items: [ + * { + * description: "alt text", + * media: { + * url: 'https://cdn.discordapp.com/embed/avatars/5.png', + * }, + * }, + * ], + * }) + * .addItems(item2, item3); + * ``` + */ + constructor({ items, ...data }?: Partial); + /** + * Adds items to this media gallery. + * + * @param items - The items to add + */ + addItems(...items: RestOrArray MediaGalleryItemBuilder)>): this; + /** + * Removes, replaces, or inserts media gallery items for this media gallery. + * + * @param index - The index to start removing, replacing or inserting items + * @param deleteCount - The amount of items to remove + * @param items - The items to insert + */ + spliceItems(index: number, deleteCount: number, ...items: RestOrArray MediaGalleryItemBuilder)>): this; + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON(): APIMediaGalleryComponent; +} + +/** + * A builder that creates API-compatible JSON data for a section. + */ +declare class SectionBuilder extends ComponentBuilder { + /** + * The components within this section. + */ + readonly components: ComponentBuilder[]; + /** + * The accessory of this section. + */ + readonly accessory?: ButtonBuilder | ThumbnailBuilder; + /** + * Creates a new section from API data. + * + * @param data - The API data to create this section with + * @example + * Creating a section from an API data object: + * ```ts + * const section = new SectionBuilder({ + * components: [ + * { + * content: "Some text here", + * type: ComponentType.TextDisplay, + * }, + * ], + * accessory: { + * media: { + * url: 'https://cdn.discordapp.com/embed/avatars/3.png', + * }, + * } + * }); + * ``` + * @example + * Creating a section using setters and API data: + * ```ts + * const section = new SectionBuilder({ + * components: [ + * { + * content: "# Heading", + * type: ComponentType.TextDisplay, + * }, + * ], + * }) + * .setPrimaryButtonAccessory(button); + * ``` + */ + constructor({ components, accessory, ...data }?: Partial); + /** + * Sets the accessory of this section to a button. + * + * @param accessory - The accessory to use + */ + setButtonAccessory(accessory: APIButtonComponent | ButtonBuilder | ((builder: ButtonBuilder) => ButtonBuilder)): this; + /** + * Sets the accessory of this section to a thumbnail. + * + * @param accessory - The accessory to use + */ + setThumbnailAccessory(accessory: APIThumbnailComponent | ThumbnailBuilder | ((builder: ThumbnailBuilder) => ThumbnailBuilder)): this; + /** + * Adds text display components to this section. + * + * @param components - The text display components to add + */ + addTextDisplayComponents(...components: RestOrArray TextDisplayBuilder)>): this; + /** + * Removes, replaces, or inserts text display components for this section. + * + * @param index - The index to start removing, replacing or inserting text display components + * @param deleteCount - The amount of text display components to remove + * @param components - The text display components to insert + */ + spliceTextDisplayComponents(index: number, deleteCount: number, ...components: RestOrArray TextDisplayBuilder)>): this; + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON(): APISectionComponent; +} + +declare class ThumbnailBuilder extends ComponentBuilder { + /** + * Creates a new thumbnail from API data. + * + * @param data - The API data to create this thumbnail with + * @example + * Creating a thumbnail from an API data object: + * ```ts + * const thumbnail = new ThumbnailBuilder({ + * description: 'some text', + * media: { + * url: 'https://cdn.discordapp.com/embed/avatars/4.png', + * }, + * }); + * ``` + * @example + * Creating a thumbnail using setters and API data: + * ```ts + * const thumbnail = new ThumbnailBuilder({ + * media: { + * url: 'attachment://image.png', + * }, + * }) + * .setDescription('alt text'); + * ``` + */ + constructor(data?: Partial); + /** + * Sets the description of this thumbnail. + * + * @param description - The description to use + */ + setDescription(description: string): this; + /** + * Clears the description of this thumbnail. + */ + clearDescription(): this; + /** + * Sets the spoiler status of this thumbnail. + * + * @param spoiler - The spoiler status to use + */ + setSpoiler(spoiler?: boolean): this; + /** + * Sets the media URL of this thumbnail. + * + * @param url - The URL to use + */ + setURL(url: string): this; + /** + * {@inheritdoc ComponentBuilder.toJSON} + */ + toJSON(): APIThumbnailComponent; +} + +/** + * The builders that may be used for messages. + */ +type MessageComponentBuilder = ActionRowBuilder | ContainerBuilder | FileBuilder | MediaGalleryBuilder | MessageActionRowComponentBuilder | SectionBuilder | SeparatorBuilder | TextDisplayBuilder | ThumbnailBuilder; +/** + * Components here are mapped to their respective builder. + */ +interface MappedComponentTypes { + /** + * The action row component type is associated with an {@link ActionRowBuilder}. + */ + [ComponentType.ActionRow]: ActionRowBuilder; + /** + * The button component type is associated with a {@link ButtonBuilder}. + */ + [ComponentType.Button]: ButtonBuilder; + /** + * The string select component type is associated with a {@link StringSelectMenuBuilder}. + */ + [ComponentType.StringSelect]: StringSelectMenuBuilder; + /** + * The text input component type is associated with a {@link TextInputBuilder}. + */ + [ComponentType.TextInput]: TextInputBuilder; + /** + * The user select component type is associated with a {@link UserSelectMenuBuilder}. + */ + [ComponentType.UserSelect]: UserSelectMenuBuilder; + /** + * The role select component type is associated with a {@link RoleSelectMenuBuilder}. + */ + [ComponentType.RoleSelect]: RoleSelectMenuBuilder; + /** + * The mentionable select component type is associated with a {@link MentionableSelectMenuBuilder}. + */ + [ComponentType.MentionableSelect]: MentionableSelectMenuBuilder; + /** + * The channel select component type is associated with a {@link ChannelSelectMenuBuilder}. + */ + [ComponentType.ChannelSelect]: ChannelSelectMenuBuilder; + /** + * The file component type is associated with a {@link FileBuilder}. + */ + [ComponentType.File]: FileBuilder; + /** + * The separator component type is associated with a {@link SeparatorBuilder}. + */ + [ComponentType.Separator]: SeparatorBuilder; + /** + * The container component type is associated with a {@link ContainerBuilder}. + */ + [ComponentType.Container]: ContainerBuilder; + /** + * The text display component type is associated with a {@link TextDisplayBuilder}. + */ + [ComponentType.TextDisplay]: TextDisplayBuilder; + /** + * The thumbnail component type is associated with a {@link ThumbnailBuilder}. + */ + [ComponentType.Thumbnail]: ThumbnailBuilder; + /** + * The section component type is associated with a {@link SectionBuilder}. + */ + [ComponentType.Section]: SectionBuilder; + /** + * The media gallery component type is associated with a {@link MediaGalleryBuilder}. + */ + [ComponentType.MediaGallery]: MediaGalleryBuilder; + /** + * The label component type is associated with a {@link LabelBuilder}. + */ + [ComponentType.Label]: LabelBuilder; + /** + * The file upload component type is associated with a {@link FileUploadBuilder}. + */ + [ComponentType.FileUpload]: FileUploadBuilder; + /** + * The checkbox component type is associated with a {@link CheckboxBuilder}. + */ + [ComponentType.Checkbox]: CheckboxBuilder; + /** + * The checkbox group component type is associated with a {@link CheckboxGroupBuilder}. + */ + [ComponentType.CheckboxGroup]: CheckboxGroupBuilder; + /** + * The radio group component type is associated with a {@link RadioGroupBuilder}. + */ + [ComponentType.RadioGroup]: RadioGroupBuilder; +} +/** + * Factory for creating components from API data. + * + * @typeParam ComponentType - The type of component to use + * @param data - The API data to transform to a component class + */ +declare function createComponentBuilder(data: (APIModalComponent | APIMessageComponent) & { + type: ComponentType; +}): MappedComponentTypes[ComponentType]; +/** + * Factory for creating components from API data. + * + * @typeParam ComponentBuilder - The type of component to use + * @param data - The API data to transform to a component class + */ +declare function createComponentBuilder(data: ComponentBuilder): ComponentBuilder; +declare function resolveBuilder, Builder extends JSONEncodable>(builder: Builder | ComponentType | ((builder: Builder) => Builder), Constructor: new (data?: ComponentType) => Builder): Builder; + +declare const textInputStyleValidator: _sapphire_shapeshift.NativeEnumValidator; +declare const minLengthValidator: _sapphire_shapeshift.NumberValidator; +declare const maxLengthValidator: _sapphire_shapeshift.NumberValidator; +declare const requiredValidator: _sapphire_shapeshift.BooleanValidator; +declare const valueValidator: _sapphire_shapeshift.StringValidator; +declare const placeholderValidator: _sapphire_shapeshift.StringValidator; +declare const labelValidator: _sapphire_shapeshift.StringValidator; +declare const textInputPredicate: _sapphire_shapeshift.ObjectValidator<{ + type: ComponentType; + custom_id: string; + style: TextInputStyle; + id: number | undefined; + min_length: number | undefined; + max_length: number | undefined; + placeholder: string | undefined; + value: string | undefined; + required: boolean | undefined; +}, _sapphire_shapeshift.UndefinedToOptional<{ + type: ComponentType; + custom_id: string; + style: TextInputStyle; + id: number | undefined; + min_length: number | undefined; + max_length: number | undefined; + placeholder: string | undefined; + value: string | undefined; + required: boolean | undefined; +}>>; +declare function validateRequiredParameters$3(customId?: string, style?: TextInputStyle): void; + +declare const Assertions$8_labelValidator: typeof labelValidator; +declare const Assertions$8_maxLengthValidator: typeof maxLengthValidator; +declare const Assertions$8_minLengthValidator: typeof minLengthValidator; +declare const Assertions$8_placeholderValidator: typeof placeholderValidator; +declare const Assertions$8_requiredValidator: typeof requiredValidator; +declare const Assertions$8_textInputPredicate: typeof textInputPredicate; +declare const Assertions$8_textInputStyleValidator: typeof textInputStyleValidator; +declare const Assertions$8_valueValidator: typeof valueValidator; +declare namespace Assertions$8 { + export { Assertions$8_labelValidator as labelValidator, Assertions$8_maxLengthValidator as maxLengthValidator, Assertions$8_minLengthValidator as minLengthValidator, Assertions$8_placeholderValidator as placeholderValidator, Assertions$8_requiredValidator as requiredValidator, Assertions$8_textInputPredicate as textInputPredicate, Assertions$8_textInputStyleValidator as textInputStyleValidator, validateRequiredParameters$3 as validateRequiredParameters, Assertions$8_valueValidator as valueValidator }; +} + +/** + * A builder that creates API-compatible JSON data for modals. + */ +declare class ModalBuilder implements JSONEncodable { + /** + * The API data associated with this modal. + */ + readonly data: Partial; + /** + * The components within this modal. + */ + readonly components: (ActionRowBuilder | LabelBuilder | TextDisplayBuilder)[]; + /** + * Creates a new modal from API data. + * + * @param data - The API data to create this modal with + */ + constructor({ components, ...data }?: Partial); + /** + * Sets the title of this modal. + * + * @param title - The title to use + */ + setTitle(title: string): this; + /** + * Sets the custom id of this modal. + * + * @param customId - The custom id to use + */ + setCustomId(customId: string): this; + /** + * Adds components to this modal. + * + * @param components - The components to add + * @deprecated Use {@link ModalBuilder.addLabelComponents} or {@link ModalBuilder.addTextDisplayComponents} instead + */ + addComponents(...components: RestOrArray | APIActionRowComponent | APILabelComponent | APITextDisplayComponent | APITextInputComponent | LabelBuilder | TextDisplayBuilder | TextInputBuilder>): this; + /** + * Adds label components to this modal. + * + * @param components - The components to add + */ + addLabelComponents(...components: RestOrArray LabelBuilder)>): this; + /** + * Adds text display components to this modal. + * + * @param components - The components to add + */ + addTextDisplayComponents(...components: RestOrArray TextDisplayBuilder)>): this; + /** + * Adds action rows to this modal. + * + * @param components - The components to add + * @deprecated Use {@link ModalBuilder.addLabelComponents} instead + */ + addActionRowComponents(...components: RestOrArray | APIActionRowComponent | ((builder: ActionRowBuilder) => ActionRowBuilder)>): this; + /** + * Sets the labels for this modal. + * + * @param components - The components to set + */ + setLabelComponents(...components: RestOrArray LabelBuilder)>): this; + /** + * Removes, replaces, or inserts labels for this modal. + * + * @remarks + * This method behaves similarly + * to {@link https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/splice | Array.prototype.splice()}. + * The maximum amount of labels that can be added is 5. + * + * It's useful for modifying and adjusting order of the already-existing labels of a modal. + * @example + * Remove the first label: + * ```ts + * modal.spliceLabelComponents(0, 1); + * ``` + * @example + * Remove the first n labels: + * ```ts + * const n = 4; + * modal.spliceLabelComponents(0, n); + * ``` + * @example + * Remove the last label: + * ```ts + * modal.spliceLabelComponents(-1, 1); + * ``` + * @param index - The index to start at + * @param deleteCount - The number of labels to remove + * @param labels - The replacing label objects + */ + spliceLabelComponents(index: number, deleteCount: number, ...labels: (APILabelComponent | LabelBuilder | ((builder: LabelBuilder) => LabelBuilder))[]): this; + /** + * Sets components for this modal. + * + * @param components - The components to set + * @deprecated Use {@link ModalBuilder.setLabelComponents} instead + */ + setComponents(...components: RestOrArray | LabelBuilder | TextDisplayBuilder>): this; + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON(): APIModalInteractionResponseCallbackData; +} + +declare const titleValidator: _sapphire_shapeshift.StringValidator; +declare const componentsValidator: _sapphire_shapeshift.ArrayValidator<[LabelBuilder | ActionRowBuilder | TextDisplayBuilder, ...(LabelBuilder | ActionRowBuilder | TextDisplayBuilder)[]], LabelBuilder | ActionRowBuilder | TextDisplayBuilder>; +declare function validateRequiredParameters$2(customId?: string, title?: string, components?: (ActionRowBuilder | LabelBuilder | TextDisplayBuilder)[]): void; + +declare const Assertions$7_componentsValidator: typeof componentsValidator; +declare const Assertions$7_titleValidator: typeof titleValidator; +declare namespace Assertions$7 { + export { Assertions$7_componentsValidator as componentsValidator, Assertions$7_titleValidator as titleValidator, validateRequiredParameters$2 as validateRequiredParameters }; +} + +declare const selectMenuChannelPredicate: _sapphire_shapeshift.ObjectValidator<{ + id: number | undefined; + placeholder: string | undefined; + min_values: number | undefined; + max_values: number | undefined; + custom_id: string; + disabled: boolean | undefined; +} & { + type: ComponentType; + channel_types: ChannelType[] | undefined; + default_values: [] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | undefined; +}, _sapphire_shapeshift.UndefinedToOptional<{ + id: number | undefined; + placeholder: string | undefined; + min_values: number | undefined; + max_values: number | undefined; + custom_id: string; + disabled: boolean | undefined; +} & { + type: ComponentType; + channel_types: ChannelType[] | undefined; + default_values: [] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | undefined; +}>>; +declare const selectMenuMentionablePredicate: _sapphire_shapeshift.ObjectValidator<{ + id: number | undefined; + placeholder: string | undefined; + min_values: number | undefined; + max_values: number | undefined; + custom_id: string; + disabled: boolean | undefined; +} & { + type: ComponentType; + default_values: [] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | undefined; +}, _sapphire_shapeshift.UndefinedToOptional<{ + id: number | undefined; + placeholder: string | undefined; + min_values: number | undefined; + max_values: number | undefined; + custom_id: string; + disabled: boolean | undefined; +} & { + type: ComponentType; + default_values: [] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | undefined; +}>>; +declare const selectMenuRolePredicate: _sapphire_shapeshift.ObjectValidator<{ + id: number | undefined; + placeholder: string | undefined; + min_values: number | undefined; + max_values: number | undefined; + custom_id: string; + disabled: boolean | undefined; +} & { + type: ComponentType; + default_values: [] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | undefined; +}, _sapphire_shapeshift.UndefinedToOptional<{ + id: number | undefined; + placeholder: string | undefined; + min_values: number | undefined; + max_values: number | undefined; + custom_id: string; + disabled: boolean | undefined; +} & { + type: ComponentType; + default_values: [] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | undefined; +}>>; +declare const selectMenuUserPredicate: _sapphire_shapeshift.ObjectValidator<{ + id: number | undefined; + placeholder: string | undefined; + min_values: number | undefined; + max_values: number | undefined; + custom_id: string; + disabled: boolean | undefined; +} & { + type: ComponentType; + default_values: [] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | undefined; +}, _sapphire_shapeshift.UndefinedToOptional<{ + id: number | undefined; + placeholder: string | undefined; + min_values: number | undefined; + max_values: number | undefined; + custom_id: string; + disabled: boolean | undefined; +} & { + type: ComponentType; + default_values: [] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | undefined; +}>>; +declare const selectMenuStringOptionPredicate: _sapphire_shapeshift.ObjectValidator<{ + label: string; + value: string; + description: string | undefined; + emoji: _sapphire_shapeshift.UndefinedToOptional<{ + name?: string | undefined; + id?: string | undefined; + animated?: boolean | undefined; + }> | undefined; + default: boolean | undefined; +}, _sapphire_shapeshift.UndefinedToOptional<{ + label: string; + value: string; + description: string | undefined; + emoji: _sapphire_shapeshift.UndefinedToOptional<{ + name?: string | undefined; + id?: string | undefined; + animated?: boolean | undefined; + }> | undefined; + default: boolean | undefined; +}>>; +declare const selectMenuStringPredicate: _sapphire_shapeshift.ObjectValidator<{ + id: number | undefined; + placeholder: string | undefined; + min_values: number | undefined; + max_values: number | undefined; + custom_id: string; + disabled: boolean | undefined; +} & { + type: ComponentType; + options: [] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>]; +}, _sapphire_shapeshift.UndefinedToOptional<{ + id: number | undefined; + placeholder: string | undefined; + min_values: number | undefined; + max_values: number | undefined; + custom_id: string; + disabled: boolean | undefined; +} & { + type: ComponentType; + options: [] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>]; +}>>; + +declare const Assertions$6_selectMenuChannelPredicate: typeof selectMenuChannelPredicate; +declare const Assertions$6_selectMenuMentionablePredicate: typeof selectMenuMentionablePredicate; +declare const Assertions$6_selectMenuRolePredicate: typeof selectMenuRolePredicate; +declare const Assertions$6_selectMenuStringOptionPredicate: typeof selectMenuStringOptionPredicate; +declare const Assertions$6_selectMenuStringPredicate: typeof selectMenuStringPredicate; +declare const Assertions$6_selectMenuUserPredicate: typeof selectMenuUserPredicate; +declare namespace Assertions$6 { + export { Assertions$6_selectMenuChannelPredicate as selectMenuChannelPredicate, Assertions$6_selectMenuMentionablePredicate as selectMenuMentionablePredicate, Assertions$6_selectMenuRolePredicate as selectMenuRolePredicate, Assertions$6_selectMenuStringOptionPredicate as selectMenuStringOptionPredicate, Assertions$6_selectMenuStringPredicate as selectMenuStringPredicate, Assertions$6_selectMenuUserPredicate as selectMenuUserPredicate }; +} + +declare const fileUploadPredicate: _sapphire_shapeshift.ObjectValidator<{ + type: ComponentType; + id: number | undefined; + custom_id: string; + min_values: number | undefined; + max_values: number | undefined; + required: boolean | undefined; +}, _sapphire_shapeshift.UndefinedToOptional<{ + type: ComponentType; + id: number | undefined; + custom_id: string; + min_values: number | undefined; + max_values: number | undefined; + required: boolean | undefined; +}>>; + +declare const Assertions$5_fileUploadPredicate: typeof fileUploadPredicate; +declare namespace Assertions$5 { + export { Assertions$5_fileUploadPredicate as fileUploadPredicate }; +} + +declare const labelPredicate: _sapphire_shapeshift.ObjectValidator<{ + id: number | undefined; + type: ComponentType; + label: string; + description: string | undefined; + component: _sapphire_shapeshift.UndefinedToOptional<{ + type: /*elided*/ any; + custom_id: /*elided*/ any; + id: /*elided*/ any; + default: /*elided*/ any; + }> | _sapphire_shapeshift.UndefinedToOptional<{ + type: /*elided*/ any; + custom_id: /*elided*/ any; + id: /*elided*/ any; + options: /*elided*/ any; + required: /*elided*/ any; + }> | _sapphire_shapeshift.UndefinedToOptional<{ + type: /*elided*/ any; + id: /*elided*/ any; + custom_id: /*elided*/ any; + min_values: /*elided*/ any; + max_values: /*elided*/ any; + required: /*elided*/ any; + }> | _sapphire_shapeshift.UndefinedToOptional<{ + type: /*elided*/ any; + custom_id: /*elided*/ any; + style: /*elided*/ any; + id: /*elided*/ any; + min_length: /*elided*/ any; + max_length: /*elided*/ any; + placeholder: /*elided*/ any; + value: /*elided*/ any; + required: /*elided*/ any; + }> | _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + placeholder: /*elided*/ any; + min_values: /*elided*/ any; + max_values: /*elided*/ any; + custom_id: /*elided*/ any; + disabled: /*elided*/ any; + } & { + type: /*elided*/ any; + default_values: /*elided*/ any; + }> | _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + placeholder: /*elided*/ any; + min_values: /*elided*/ any; + max_values: /*elided*/ any; + custom_id: /*elided*/ any; + disabled: /*elided*/ any; + } & { + type: /*elided*/ any; + options: /*elided*/ any; + }>; +}, _sapphire_shapeshift.UndefinedToOptional<{ + id: number | undefined; + type: ComponentType; + label: string; + description: string | undefined; + component: _sapphire_shapeshift.UndefinedToOptional<{ + type: /*elided*/ any; + custom_id: /*elided*/ any; + id: /*elided*/ any; + default: /*elided*/ any; + }> | _sapphire_shapeshift.UndefinedToOptional<{ + type: /*elided*/ any; + custom_id: /*elided*/ any; + id: /*elided*/ any; + options: /*elided*/ any; + required: /*elided*/ any; + }> | _sapphire_shapeshift.UndefinedToOptional<{ + type: /*elided*/ any; + id: /*elided*/ any; + custom_id: /*elided*/ any; + min_values: /*elided*/ any; + max_values: /*elided*/ any; + required: /*elided*/ any; + }> | _sapphire_shapeshift.UndefinedToOptional<{ + type: /*elided*/ any; + custom_id: /*elided*/ any; + style: /*elided*/ any; + id: /*elided*/ any; + min_length: /*elided*/ any; + max_length: /*elided*/ any; + placeholder: /*elided*/ any; + value: /*elided*/ any; + required: /*elided*/ any; + }> | _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + placeholder: /*elided*/ any; + min_values: /*elided*/ any; + max_values: /*elided*/ any; + custom_id: /*elided*/ any; + disabled: /*elided*/ any; + } & { + type: /*elided*/ any; + default_values: /*elided*/ any; + }> | _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + placeholder: /*elided*/ any; + min_values: /*elided*/ any; + max_values: /*elided*/ any; + custom_id: /*elided*/ any; + disabled: /*elided*/ any; + } & { + type: /*elided*/ any; + options: /*elided*/ any; + }>; +}>>; + +declare const Assertions$4_labelPredicate: typeof labelPredicate; +declare namespace Assertions$4 { + export { Assertions$4_labelPredicate as labelPredicate }; +} + +declare const unfurledMediaItemPredicate: _sapphire_shapeshift.ObjectValidator<{ + url: string; +}, _sapphire_shapeshift.UndefinedToOptional<{ + url: string; +}>>; +declare const descriptionPredicate: _sapphire_shapeshift.StringValidator; +declare const filePredicate: _sapphire_shapeshift.ObjectValidator<{ + url: string; +}, _sapphire_shapeshift.UndefinedToOptional<{ + url: string; +}>>; +declare const spoilerPredicate: _sapphire_shapeshift.BooleanValidator; +declare const dividerPredicate: _sapphire_shapeshift.BooleanValidator; +declare const spacingPredicate: _sapphire_shapeshift.NativeEnumValidator; +declare const textDisplayContentPredicate: _sapphire_shapeshift.StringValidator; +declare const accessoryPredicate: _sapphire_shapeshift.UnionValidator; +declare const containerColorPredicate: _sapphire_shapeshift.UnionValidator; +declare function assertReturnOfBuilder$1(input: unknown, ExpectedInstanceOf: new () => ReturnType): asserts input is ReturnType; +declare function validateComponentArray(input: unknown, min: number, max: number, ExpectedInstanceOf?: new () => ReturnType): asserts input is ReturnType[]; + +declare const Assertions$3_accessoryPredicate: typeof accessoryPredicate; +declare const Assertions$3_containerColorPredicate: typeof containerColorPredicate; +declare const Assertions$3_descriptionPredicate: typeof descriptionPredicate; +declare const Assertions$3_dividerPredicate: typeof dividerPredicate; +declare const Assertions$3_filePredicate: typeof filePredicate; +declare const Assertions$3_spacingPredicate: typeof spacingPredicate; +declare const Assertions$3_spoilerPredicate: typeof spoilerPredicate; +declare const Assertions$3_textDisplayContentPredicate: typeof textDisplayContentPredicate; +declare const Assertions$3_unfurledMediaItemPredicate: typeof unfurledMediaItemPredicate; +declare const Assertions$3_validateComponentArray: typeof validateComponentArray; +declare namespace Assertions$3 { + export { Assertions$3_accessoryPredicate as accessoryPredicate, assertReturnOfBuilder$1 as assertReturnOfBuilder, Assertions$3_containerColorPredicate as containerColorPredicate, Assertions$3_descriptionPredicate as descriptionPredicate, Assertions$3_dividerPredicate as dividerPredicate, Assertions$3_filePredicate as filePredicate, Assertions$3_spacingPredicate as spacingPredicate, Assertions$3_spoilerPredicate as spoilerPredicate, Assertions$3_textDisplayContentPredicate as textDisplayContentPredicate, Assertions$3_unfurledMediaItemPredicate as unfurledMediaItemPredicate, Assertions$3_validateComponentArray as validateComponentArray }; +} + +declare const checkboxPredicate: _sapphire_shapeshift.ObjectValidator<{ + type: ComponentType; + custom_id: string; + id: number | undefined; + default: boolean | undefined; +}, _sapphire_shapeshift.UndefinedToOptional<{ + type: ComponentType; + custom_id: string; + id: number | undefined; + default: boolean | undefined; +}>>; +declare const checkboxGroupOptionPredicate: _sapphire_shapeshift.ObjectValidator<{ + label: string; + value: string; + description: string | undefined; + default: boolean | undefined; +}, _sapphire_shapeshift.UndefinedToOptional<{ + label: string; + value: string; + description: string | undefined; + default: boolean | undefined; +}>>; +declare const checkboxGroupPredicate: _sapphire_shapeshift.ObjectValidator<{ + type: ComponentType; + custom_id: string; + id: number | undefined; + options: [] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>]; + min_values: number | undefined; + max_values: number | undefined; + required: boolean | undefined; +}, _sapphire_shapeshift.UndefinedToOptional<{ + type: ComponentType; + custom_id: string; + id: number | undefined; + options: [] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>]; + min_values: number | undefined; + max_values: number | undefined; + required: boolean | undefined; +}>>; +declare const radioGroupOptionPredicate: _sapphire_shapeshift.ObjectValidator<{ + label: string; + value: string; + description: string | undefined; + default: boolean | undefined; +}, _sapphire_shapeshift.UndefinedToOptional<{ + label: string; + value: string; + description: string | undefined; + default: boolean | undefined; +}>>; +declare const radioGroupPredicate: _sapphire_shapeshift.ObjectValidator<{ + type: ComponentType; + custom_id: string; + id: number | undefined; + options: [] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>]; + required: boolean | undefined; +}, _sapphire_shapeshift.UndefinedToOptional<{ + type: ComponentType; + custom_id: string; + id: number | undefined; + options: [] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>]; + required: boolean | undefined; +}>>; + +declare const Assertions$2_checkboxGroupOptionPredicate: typeof checkboxGroupOptionPredicate; +declare const Assertions$2_checkboxGroupPredicate: typeof checkboxGroupPredicate; +declare const Assertions$2_checkboxPredicate: typeof checkboxPredicate; +declare const Assertions$2_radioGroupOptionPredicate: typeof radioGroupOptionPredicate; +declare const Assertions$2_radioGroupPredicate: typeof radioGroupPredicate; +declare namespace Assertions$2 { + export { Assertions$2_checkboxGroupOptionPredicate as checkboxGroupOptionPredicate, Assertions$2_checkboxGroupPredicate as checkboxGroupPredicate, Assertions$2_checkboxPredicate as checkboxPredicate, Assertions$2_radioGroupOptionPredicate as radioGroupOptionPredicate, Assertions$2_radioGroupPredicate as radioGroupPredicate }; +} + +/** + * This mixin holds name and description symbols for slash commands. + */ +declare class SharedNameAndDescription { + /** + * The name of this command. + */ + readonly name: string; + /** + * The name localizations of this command. + */ + readonly name_localizations?: LocalizationMap; + /** + * The description of this command. + */ + readonly description: string; + /** + * The description localizations of this command. + */ + readonly description_localizations?: LocalizationMap; + /** + * Sets the name of this command. + * + * @param name - The name to use + */ + setName(name: string): this; + /** + * Sets the description of this command. + * + * @param description - The description to use + */ + setDescription(description: string): this; + /** + * Sets a name localization for this command. + * + * @param locale - The locale to set + * @param localizedName - The localized name for the given `locale` + */ + setNameLocalization(locale: LocaleString, localizedName: string | null): this; + /** + * Sets the name localizations for this command. + * + * @param localizedNames - The object of localized names to set + */ + setNameLocalizations(localizedNames: LocalizationMap | null): this; + /** + * Sets a description localization for this command. + * + * @param locale - The locale to set + * @param localizedDescription - The localized description for the given locale + */ + setDescriptionLocalization(locale: LocaleString, localizedDescription: string | null): this; + /** + * Sets the description localizations for this command. + * + * @param localizedDescriptions - The object of localized descriptions to set + */ + setDescriptionLocalizations(localizedDescriptions: LocalizationMap | null): this; +} + +/** + * This mixin holds symbols that can be shared in slashcommands independent of options or subcommands. + */ +declare class SharedSlashCommand { + readonly name: string; + readonly name_localizations?: LocalizationMap; + readonly description: string; + readonly description_localizations?: LocalizationMap; + readonly options: ToAPIApplicationCommandOptions[]; + readonly contexts?: InteractionContextType[]; + /** + * @deprecated Use {@link SharedSlashCommand.setDefaultMemberPermissions} or {@link SharedSlashCommand.setDMPermission} instead. + */ + readonly default_permission: boolean | undefined; + readonly default_member_permissions: Permissions | null | undefined; + /** + * @deprecated Use {@link SharedSlashCommand.contexts} instead. + */ + readonly dm_permission: boolean | undefined; + readonly integration_types?: ApplicationIntegrationType[]; + readonly nsfw: boolean | undefined; + /** + * Sets the contexts of this command. + * + * @param contexts - The contexts + */ + setContexts(...contexts: RestOrArray): this; + /** + * Sets the integration types of this command. + * + * @param integrationTypes - The integration types + */ + setIntegrationTypes(...integrationTypes: RestOrArray): this; + /** + * Sets whether the command is enabled by default when the application is added to a guild. + * + * @remarks + * If set to `false`, you will have to later `PUT` the permissions for this command. + * @param value - Whether or not to enable this command by default + * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} + * @deprecated Use {@link SharedSlashCommand.setDefaultMemberPermissions} or {@link SharedSlashCommand.setDMPermission} instead. + */ + setDefaultPermission(value: boolean): this; + /** + * Sets the default permissions a member should have in order to run the command. + * + * @remarks + * You can set this to `'0'` to disable the command by default. + * @param permissions - The permissions bit field to set + * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} + */ + setDefaultMemberPermissions(permissions: Permissions | bigint | number | null | undefined): this; + /** + * Sets if the command is available in direct messages with the application. + * + * @remarks + * By default, commands are visible. This method is only for global commands. + * @param enabled - Whether the command should be enabled in direct messages + * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} + * @deprecated + * Use {@link SharedSlashCommand.setContexts} instead. + */ + setDMPermission(enabled: boolean | null | undefined): this; + /** + * Sets whether this command is NSFW. + * + * @param nsfw - Whether this command is NSFW + */ + setNSFW(nsfw?: boolean): this; + /** + * Serializes this builder to API-compatible JSON data. + * + * @remarks + * This method runs validations on the data before serializing it. + * As such, it may throw an error if the data is invalid. + */ + toJSON(): RESTPostAPIChatInputApplicationCommandsJSONBody; +} + +/** + * The base application command option builder that contains common symbols for application command builders. + */ +declare abstract class ApplicationCommandOptionBase extends SharedNameAndDescription { + /** + * The type of this option. + */ + abstract readonly type: ApplicationCommandOptionType; + /** + * Whether this option is required. + * + * @defaultValue `false` + */ + readonly required: boolean; + /** + * Sets whether this option is required. + * + * @param required - Whether this option should be required + */ + setRequired(required: boolean): this; + /** + * Serializes this builder to API-compatible JSON data. + * + * @remarks + * This method runs validations on the data before serializing it. + * As such, it may throw an error if the data is invalid. + */ + abstract toJSON(): APIApplicationCommandBasicOption; + /** + * This method runs required validators on this builder. + */ + protected runRequiredValidations(): void; +} + +/** + * A slash command attachment option. + */ +declare class SlashCommandAttachmentOption extends ApplicationCommandOptionBase { + /** + * The type of this option. + */ + readonly type: ApplicationCommandOptionType.Attachment; + /** + * {@inheritDoc ApplicationCommandOptionBase.toJSON} + */ + toJSON(): APIApplicationCommandAttachmentOption; +} + +/** + * A slash command boolean option. + */ +declare class SlashCommandBooleanOption extends ApplicationCommandOptionBase { + /** + * The type of this option. + */ + readonly type: ApplicationCommandOptionType.Boolean; + /** + * {@inheritDoc ApplicationCommandOptionBase.toJSON} + */ + toJSON(): APIApplicationCommandBooleanOption; +} + +/** + * The allowed channel types used for a channel option in a slash command builder. + * + * @privateRemarks This can't be dynamic because const enums are erased at runtime. + * @internal + */ +declare const allowedChannelTypes: readonly [ChannelType.GuildText, ChannelType.GuildVoice, ChannelType.GuildCategory, ChannelType.GuildAnnouncement, ChannelType.AnnouncementThread, ChannelType.PublicThread, ChannelType.PrivateThread, ChannelType.GuildStageVoice, ChannelType.GuildForum, ChannelType.GuildMedia]; +/** + * The type of allowed channel types used for a channel option. + */ +type ApplicationCommandOptionAllowedChannelTypes = (typeof allowedChannelTypes)[number]; +/** + * This mixin holds channel type symbols used for options. + */ +declare class ApplicationCommandOptionChannelTypesMixin { + /** + * The channel types of this option. + */ + readonly channel_types?: ApplicationCommandOptionAllowedChannelTypes[]; + /** + * Adds channel types to this option. + * + * @param channelTypes - The channel types + */ + addChannelTypes(...channelTypes: RestOrArray): this; +} + +/** + * A slash command channel option. + */ +declare class SlashCommandChannelOption extends ApplicationCommandOptionBase { + /** + * The type of this option. + */ + readonly type: ApplicationCommandOptionType.Channel; + /** + * {@inheritDoc ApplicationCommandOptionBase.toJSON} + */ + toJSON(): APIApplicationCommandChannelOption; +} +interface SlashCommandChannelOption extends ApplicationCommandOptionChannelTypesMixin { +} + +/** + * This mixin holds minimum and maximum symbols used for options. + */ +declare abstract class ApplicationCommandNumericOptionMinMaxValueMixin { + /** + * The maximum value of this option. + */ + readonly max_value?: number; + /** + * The minimum value of this option. + */ + readonly min_value?: number; + /** + * Sets the maximum number value of this option. + * + * @param max - The maximum value this option can be + */ + abstract setMaxValue(max: number): this; + /** + * Sets the minimum number value of this option. + * + * @param min - The minimum value this option can be + */ + abstract setMinValue(min: number): this; +} + +/** + * This mixin holds choices and autocomplete symbols used for options. + */ +declare class ApplicationCommandOptionWithAutocompleteMixin { + /** + * Whether this option utilizes autocomplete. + */ + readonly autocomplete?: boolean; + /** + * The type of this option. + * + * @privateRemarks Since this is present and this is a mixin, this is needed. + */ + readonly type: ApplicationCommandOptionType; + /** + * Whether this option uses autocomplete. + * + * @param autocomplete - Whether this option should use autocomplete + */ + setAutocomplete(autocomplete: boolean): this; +} + +/** + * This mixin holds choices and autocomplete symbols used for options. + */ +declare class ApplicationCommandOptionWithChoicesMixin { + /** + * The choices of this option. + */ + readonly choices?: APIApplicationCommandOptionChoice[]; + /** + * The type of this option. + * + * @privateRemarks Since this is present and this is a mixin, this is needed. + */ + readonly type: ApplicationCommandOptionType; + /** + * Adds multiple choices to this option. + * + * @param choices - The choices to add + */ + addChoices(...choices: RestOrArray>): this; + /** + * Sets multiple choices for this option. + * + * @param choices - The choices to set + */ + setChoices>(...choices: RestOrArray): this; +} + +/** + * A slash command integer option. + */ +declare class SlashCommandIntegerOption extends ApplicationCommandOptionBase implements ApplicationCommandNumericOptionMinMaxValueMixin { + /** + * The type of this option. + */ + readonly type: ApplicationCommandOptionType.Integer; + /** + * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMaxValue} + */ + setMaxValue(max: number): this; + /** + * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMinValue} + */ + setMinValue(min: number): this; + /** + * {@inheritDoc ApplicationCommandOptionBase.toJSON} + */ + toJSON(): APIApplicationCommandIntegerOption; +} +interface SlashCommandIntegerOption extends ApplicationCommandNumericOptionMinMaxValueMixin, ApplicationCommandOptionWithChoicesMixin, ApplicationCommandOptionWithAutocompleteMixin { +} + +/** + * A slash command mentionable option. + */ +declare class SlashCommandMentionableOption extends ApplicationCommandOptionBase { + /** + * The type of this option. + */ + readonly type: ApplicationCommandOptionType.Mentionable; + /** + * {@inheritDoc ApplicationCommandOptionBase.toJSON} + */ + toJSON(): APIApplicationCommandMentionableOption; +} + +/** + * A slash command number option. + */ +declare class SlashCommandNumberOption extends ApplicationCommandOptionBase implements ApplicationCommandNumericOptionMinMaxValueMixin { + /** + * The type of this option. + */ + readonly type: ApplicationCommandOptionType.Number; + /** + * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMaxValue} + */ + setMaxValue(max: number): this; + /** + * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMinValue} + */ + setMinValue(min: number): this; + /** + * {@inheritDoc ApplicationCommandOptionBase.toJSON} + */ + toJSON(): APIApplicationCommandNumberOption; +} +interface SlashCommandNumberOption extends ApplicationCommandNumericOptionMinMaxValueMixin, ApplicationCommandOptionWithChoicesMixin, ApplicationCommandOptionWithAutocompleteMixin { +} + +/** + * A slash command role option. + */ +declare class SlashCommandRoleOption extends ApplicationCommandOptionBase { + /** + * The type of this option. + */ + readonly type: ApplicationCommandOptionType.Role; + /** + * {@inheritDoc ApplicationCommandOptionBase.toJSON} + */ + toJSON(): APIApplicationCommandRoleOption; +} + +/** + * A slash command string option. + */ +declare class SlashCommandStringOption extends ApplicationCommandOptionBase { + /** + * The type of this option. + */ + readonly type: ApplicationCommandOptionType.String; + /** + * The maximum length of this option. + */ + readonly max_length?: number; + /** + * The minimum length of this option. + */ + readonly min_length?: number; + /** + * Sets the maximum length of this string option. + * + * @param max - The maximum length this option can be + */ + setMaxLength(max: number): this; + /** + * Sets the minimum length of this string option. + * + * @param min - The minimum length this option can be + */ + setMinLength(min: number): this; + /** + * {@inheritDoc ApplicationCommandOptionBase.toJSON} + */ + toJSON(): APIApplicationCommandStringOption; +} +interface SlashCommandStringOption extends ApplicationCommandOptionWithChoicesMixin, ApplicationCommandOptionWithAutocompleteMixin { +} + +/** + * A slash command user option. + */ +declare class SlashCommandUserOption extends ApplicationCommandOptionBase { + /** + * The type of this option. + */ + readonly type: ApplicationCommandOptionType.User; + /** + * {@inheritDoc ApplicationCommandOptionBase.toJSON} + */ + toJSON(): APIApplicationCommandUserOption; +} + +/** + * This mixin holds symbols that can be shared in slash command options. + * + * @typeParam TypeAfterAddingOptions - The type this class should return after adding an option. + */ +declare class SharedSlashCommandOptions> { + readonly options: ToAPIApplicationCommandOptions[]; + /** + * Adds a boolean option. + * + * @param input - A function that returns an option builder or an already built builder + */ + addBooleanOption(input: SlashCommandBooleanOption | ((builder: SlashCommandBooleanOption) => SlashCommandBooleanOption)): TypeAfterAddingOptions; + /** + * Adds a user option. + * + * @param input - A function that returns an option builder or an already built builder + */ + addUserOption(input: SlashCommandUserOption | ((builder: SlashCommandUserOption) => SlashCommandUserOption)): TypeAfterAddingOptions; + /** + * Adds a channel option. + * + * @param input - A function that returns an option builder or an already built builder + */ + addChannelOption(input: SlashCommandChannelOption | ((builder: SlashCommandChannelOption) => SlashCommandChannelOption)): TypeAfterAddingOptions; + /** + * Adds a role option. + * + * @param input - A function that returns an option builder or an already built builder + */ + addRoleOption(input: SlashCommandRoleOption | ((builder: SlashCommandRoleOption) => SlashCommandRoleOption)): TypeAfterAddingOptions; + /** + * Adds an attachment option. + * + * @param input - A function that returns an option builder or an already built builder + */ + addAttachmentOption(input: SlashCommandAttachmentOption | ((builder: SlashCommandAttachmentOption) => SlashCommandAttachmentOption)): TypeAfterAddingOptions; + /** + * Adds a mentionable option. + * + * @param input - A function that returns an option builder or an already built builder + */ + addMentionableOption(input: SlashCommandMentionableOption | ((builder: SlashCommandMentionableOption) => SlashCommandMentionableOption)): TypeAfterAddingOptions; + /** + * Adds a string option. + * + * @param input - A function that returns an option builder or an already built builder + */ + addStringOption(input: SlashCommandStringOption | ((builder: SlashCommandStringOption) => SlashCommandStringOption)): TypeAfterAddingOptions; + /** + * Adds an integer option. + * + * @param input - A function that returns an option builder or an already built builder + */ + addIntegerOption(input: SlashCommandIntegerOption | ((builder: SlashCommandIntegerOption) => SlashCommandIntegerOption)): TypeAfterAddingOptions; + /** + * Adds a number option. + * + * @param input - A function that returns an option builder or an already built builder + */ + addNumberOption(input: SlashCommandNumberOption | ((builder: SlashCommandNumberOption) => SlashCommandNumberOption)): TypeAfterAddingOptions; + /** + * Where the actual adding magic happens. ✨ + * + * @param input - The input. What else? + * @param Instance - The instance of whatever is being added + * @internal + */ + private _sharedAddOptionMethod; +} + +/** + * Represents a folder for subcommands. + * + * @see {@link https://discord.com/developers/docs/interactions/application-commands#subcommands-and-subcommand-groups} + */ +declare class SlashCommandSubcommandGroupBuilder implements ToAPIApplicationCommandOptions { + /** + * The name of this subcommand group. + */ + readonly name: string; + /** + * The description of this subcommand group. + */ + readonly description: string; + /** + * The subcommands within this subcommand group. + */ + readonly options: SlashCommandSubcommandBuilder[]; + /** + * Adds a new subcommand to this group. + * + * @param input - A function that returns a subcommand builder or an already built builder + */ + addSubcommand(input: SlashCommandSubcommandBuilder | ((subcommandGroup: SlashCommandSubcommandBuilder) => SlashCommandSubcommandBuilder)): this; + /** + * Serializes this builder to API-compatible JSON data. + * + * @remarks + * This method runs validations on the data before serializing it. + * As such, it may throw an error if the data is invalid. + */ + toJSON(): APIApplicationCommandSubcommandGroupOption; +} +interface SlashCommandSubcommandGroupBuilder extends SharedNameAndDescription { +} +/** + * A builder that creates API-compatible JSON data for slash command subcommands. + * + * @see {@link https://discord.com/developers/docs/interactions/application-commands#subcommands-and-subcommand-groups} + */ +declare class SlashCommandSubcommandBuilder implements ToAPIApplicationCommandOptions { + /** + * The name of this subcommand. + */ + readonly name: string; + /** + * The description of this subcommand. + */ + readonly description: string; + /** + * The options within this subcommand. + */ + readonly options: ApplicationCommandOptionBase[]; + /** + * Serializes this builder to API-compatible JSON data. + * + * @remarks + * This method runs validations on the data before serializing it. + * As such, it may throw an error if the data is invalid. + */ + toJSON(): APIApplicationCommandSubcommandOption; +} +interface SlashCommandSubcommandBuilder extends SharedNameAndDescription, SharedSlashCommandOptions { +} + +/** + * This mixin holds symbols that can be shared in slash subcommands. + * + * @typeParam TypeAfterAddingSubcommands - The type this class should return after adding a subcommand or subcommand group. + */ +declare class SharedSlashCommandSubcommands> { + readonly options: ToAPIApplicationCommandOptions[]; + /** + * Adds a new subcommand group to this command. + * + * @param input - A function that returns a subcommand group builder or an already built builder + */ + addSubcommandGroup(input: SlashCommandSubcommandGroupBuilder | ((subcommandGroup: SlashCommandSubcommandGroupBuilder) => SlashCommandSubcommandGroupBuilder)): TypeAfterAddingSubcommands; + /** + * Adds a new subcommand to this command. + * + * @param input - A function that returns a subcommand builder or an already built builder + */ + addSubcommand(input: SlashCommandSubcommandBuilder | ((subcommandGroup: SlashCommandSubcommandBuilder) => SlashCommandSubcommandBuilder)): TypeAfterAddingSubcommands; +} + +/** + * A builder that creates API-compatible JSON data for slash commands. + */ +declare class SlashCommandBuilder { + /** + * The name of this command. + */ + readonly name: string; + /** + * The name localizations of this command. + */ + readonly name_localizations?: LocalizationMap; + /** + * The description of this command. + */ + readonly description: string; + /** + * The description localizations of this command. + */ + readonly description_localizations?: LocalizationMap; + /** + * The options of this command. + */ + readonly options: ToAPIApplicationCommandOptions[]; + /** + * The contexts for this command. + */ + readonly contexts?: InteractionContextType[]; + /** + * Whether this command is enabled by default when the application is added to a guild. + * + * @deprecated Use {@link SharedSlashCommand.setDefaultMemberPermissions} or {@link SharedSlashCommand.setDMPermission} instead. + */ + readonly default_permission: boolean | undefined; + /** + * The set of permissions represented as a bit set for the command. + */ + readonly default_member_permissions: Permissions | null | undefined; + /** + * Indicates whether the command is available in direct messages with the application. + * + * @remarks + * By default, commands are visible. This property is only for global commands. + * @deprecated + * Use {@link SlashCommandBuilder.contexts} instead. + */ + readonly dm_permission: boolean | undefined; + /** + * The integration types for this command. + */ + readonly integration_types?: ApplicationIntegrationType[]; + /** + * Whether this command is NSFW. + */ + readonly nsfw: boolean | undefined; +} +interface SlashCommandBuilder extends SharedNameAndDescription, SharedSlashCommandOptions, SharedSlashCommandSubcommands, SharedSlashCommand { +} +/** + * An interface specifically for slash command subcommands. + */ +interface SlashCommandSubcommandsOnlyBuilder extends SharedNameAndDescription, SharedSlashCommandSubcommands, SharedSlashCommand { +} +/** + * An interface specifically for slash command options. + */ +interface SlashCommandOptionsOnlyBuilder extends SharedNameAndDescription, SharedSlashCommandOptions, SharedSlashCommand { +} +/** + * An interface that ensures the `toJSON()` call will return something + * that can be serialized into API-compatible data. + */ +interface ToAPIApplicationCommandOptions { + toJSON(): APIApplicationCommandOption; +} + +declare function validateName$1(name: unknown): asserts name is string; +declare function validateDescription(description: unknown): asserts description is string; +declare function validateLocale(locale: unknown): Locale; +declare function validateMaxOptionsLength(options: unknown): asserts options is ToAPIApplicationCommandOptions[]; +declare function validateRequiredParameters$1(name: string, description: string, options: ToAPIApplicationCommandOptions[]): void; +declare function validateDefaultPermission$1(value: unknown): asserts value is boolean; +declare function validateRequired(required: unknown): asserts required is boolean; +declare function validateChoicesLength(amountAdding: number, choices?: APIApplicationCommandOptionChoice[]): void; +declare function assertReturnOfBuilder(input: unknown, ExpectedInstanceOf: new () => ReturnType): asserts input is ReturnType; +declare const localizationMapPredicate: _sapphire_shapeshift.UnionValidator<_sapphire_shapeshift.UndefinedToOptional>> | null | undefined>; +declare function validateLocalizationMap(value: unknown): asserts value is LocalizationMap; +declare function validateDMPermission$1(value: unknown): asserts value is boolean | null | undefined; +declare function validateDefaultMemberPermissions$1(permissions: unknown): string | null | undefined; +declare function validateNSFW(value: unknown): asserts value is boolean; +declare const contextsPredicate$1: _sapphire_shapeshift.ArrayValidator; +declare const integrationTypesPredicate$1: _sapphire_shapeshift.ArrayValidator; + +declare const Assertions$1_assertReturnOfBuilder: typeof assertReturnOfBuilder; +declare const Assertions$1_localizationMapPredicate: typeof localizationMapPredicate; +declare const Assertions$1_validateChoicesLength: typeof validateChoicesLength; +declare const Assertions$1_validateDescription: typeof validateDescription; +declare const Assertions$1_validateLocale: typeof validateLocale; +declare const Assertions$1_validateLocalizationMap: typeof validateLocalizationMap; +declare const Assertions$1_validateMaxOptionsLength: typeof validateMaxOptionsLength; +declare const Assertions$1_validateNSFW: typeof validateNSFW; +declare const Assertions$1_validateRequired: typeof validateRequired; +declare namespace Assertions$1 { + export { Assertions$1_assertReturnOfBuilder as assertReturnOfBuilder, contextsPredicate$1 as contextsPredicate, integrationTypesPredicate$1 as integrationTypesPredicate, Assertions$1_localizationMapPredicate as localizationMapPredicate, Assertions$1_validateChoicesLength as validateChoicesLength, validateDMPermission$1 as validateDMPermission, validateDefaultMemberPermissions$1 as validateDefaultMemberPermissions, validateDefaultPermission$1 as validateDefaultPermission, Assertions$1_validateDescription as validateDescription, Assertions$1_validateLocale as validateLocale, Assertions$1_validateLocalizationMap as validateLocalizationMap, Assertions$1_validateMaxOptionsLength as validateMaxOptionsLength, Assertions$1_validateNSFW as validateNSFW, validateName$1 as validateName, Assertions$1_validateRequired as validateRequired, validateRequiredParameters$1 as validateRequiredParameters }; +} + +/** + * The type a context menu command can be. + */ +type ContextMenuCommandType = ApplicationCommandType.Message | ApplicationCommandType.User; +/** + * A builder that creates API-compatible JSON data for context menu commands. + */ +declare class ContextMenuCommandBuilder { + /** + * The name of this command. + */ + readonly name: string; + /** + * The name localizations of this command. + */ + readonly name_localizations?: LocalizationMap; + /** + * The type of this command. + */ + readonly type: ContextMenuCommandType; + /** + * The contexts for this command. + */ + readonly contexts?: InteractionContextType[]; + /** + * Whether this command is enabled by default when the application is added to a guild. + * + * @deprecated Use {@link ContextMenuCommandBuilder.setDefaultMemberPermissions} or {@link ContextMenuCommandBuilder.setDMPermission} instead. + */ + readonly default_permission: boolean | undefined; + /** + * The set of permissions represented as a bit set for the command. + */ + readonly default_member_permissions: Permissions | null | undefined; + /** + * Indicates whether the command is available in direct messages with the application. + * + * @remarks + * By default, commands are visible. This property is only for global commands. + * @deprecated + * Use {@link ContextMenuCommandBuilder.contexts} instead. + */ + readonly dm_permission: boolean | undefined; + /** + * The integration types for this command. + */ + readonly integration_types?: ApplicationIntegrationType[]; + /** + * Sets the contexts of this command. + * + * @param contexts - The contexts + */ + setContexts(...contexts: RestOrArray): this; + /** + * Sets integration types of this command. + * + * @param integrationTypes - The integration types + */ + setIntegrationTypes(...integrationTypes: RestOrArray): this; + /** + * Sets the name of this command. + * + * @param name - The name to use + */ + setName(name: string): this; + /** + * Sets the type of this command. + * + * @param type - The type to use + */ + setType(type: ContextMenuCommandType): this; + /** + * Sets whether the command is enabled by default when the application is added to a guild. + * + * @remarks + * If set to `false`, you will have to later `PUT` the permissions for this command. + * @param value - Whether to enable this command by default + * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} + * @deprecated Use {@link ContextMenuCommandBuilder.setDefaultMemberPermissions} or {@link ContextMenuCommandBuilder.setDMPermission} instead. + */ + setDefaultPermission(value: boolean): this; + /** + * Sets the default permissions a member should have in order to run this command. + * + * @remarks + * You can set this to `'0'` to disable the command by default. + * @param permissions - The permissions bit field to set + * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} + */ + setDefaultMemberPermissions(permissions: Permissions | bigint | number | null | undefined): this; + /** + * Sets if the command is available in direct messages with the application. + * + * @remarks + * By default, commands are visible. This method is only for global commands. + * @param enabled - Whether the command should be enabled in direct messages + * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} + * @deprecated Use {@link ContextMenuCommandBuilder.setContexts} instead. + */ + setDMPermission(enabled: boolean | null | undefined): this; + /** + * Sets a name localization for this command. + * + * @param locale - The locale to set + * @param localizedName - The localized name for the given `locale` + */ + setNameLocalization(locale: LocaleString, localizedName: string | null): this; + /** + * Sets the name localizations for this command. + * + * @param localizedNames - The object of localized names to set + */ + setNameLocalizations(localizedNames: LocalizationMap | null): this; + /** + * Serializes this builder to API-compatible JSON data. + * + * @remarks + * This method runs validations on the data before serializing it. + * As such, it may throw an error if the data is invalid. + */ + toJSON(): RESTPostAPIContextMenuApplicationCommandsJSONBody; +} + +declare function validateDefaultPermission(value: unknown): asserts value is boolean; +declare function validateName(name: unknown): asserts name is string; +declare function validateType(type: unknown): asserts type is ContextMenuCommandType; +declare function validateRequiredParameters(name: string, type: number): void; +declare function validateDMPermission(value: unknown): asserts value is boolean | null | undefined; +declare function validateDefaultMemberPermissions(permissions: unknown): string | null | undefined; +declare const contextsPredicate: _sapphire_shapeshift.ArrayValidator; +declare const integrationTypesPredicate: _sapphire_shapeshift.ArrayValidator; + +declare const Assertions_contextsPredicate: typeof contextsPredicate; +declare const Assertions_integrationTypesPredicate: typeof integrationTypesPredicate; +declare const Assertions_validateDMPermission: typeof validateDMPermission; +declare const Assertions_validateDefaultMemberPermissions: typeof validateDefaultMemberPermissions; +declare const Assertions_validateDefaultPermission: typeof validateDefaultPermission; +declare const Assertions_validateName: typeof validateName; +declare const Assertions_validateRequiredParameters: typeof validateRequiredParameters; +declare const Assertions_validateType: typeof validateType; +declare namespace Assertions { + export { Assertions_contextsPredicate as contextsPredicate, Assertions_integrationTypesPredicate as integrationTypesPredicate, Assertions_validateDMPermission as validateDMPermission, Assertions_validateDefaultMemberPermissions as validateDefaultMemberPermissions, Assertions_validateDefaultPermission as validateDefaultPermission, Assertions_validateName as validateName, Assertions_validateRequiredParameters as validateRequiredParameters, Assertions_validateType as validateType }; +} + +/** + * Calculates the length of the embed. + * + * @param data - The embed data to check + */ +declare function embedLength(data: APIEmbed): number; + +/** + * Enables validators. + * + * @returns Whether validation is occurring. + */ +declare function enableValidators(): boolean; +/** + * Disables validators. + * + * @returns Whether validation is occurring. + */ +declare function disableValidators(): boolean; +/** + * Checks whether validation is occurring. + */ +declare function isValidationEnabled(): boolean; + +/** + * The {@link https://github.com/discordjs/discord.js/blob/main/packages/builders#readme | @discordjs/builders} version + * that you are currently using. + * + * @privateRemarks This needs to explicitly be `string` so it is not typed as a "const string" that gets injected by esbuild. + */ +declare const version: string; + +export { ActionRowBuilder, type AnyAPIActionRowComponent, type AnyComponentBuilder, ApplicationCommandNumericOptionMinMaxValueMixin, type ApplicationCommandOptionAllowedChannelTypes, ApplicationCommandOptionBase, ApplicationCommandOptionChannelTypesMixin, ApplicationCommandOptionWithAutocompleteMixin, ApplicationCommandOptionWithChoicesMixin, BaseSelectMenuBuilder, ButtonBuilder, ChannelSelectMenuBuilder, Assertions$2 as CheckboxAssertions, CheckboxBuilder, CheckboxGroupBuilder, CheckboxGroupOptionBuilder, Assertions$9 as ComponentAssertions, ComponentBuilder, Assertions$3 as ComponentsV2Assertions, ContainerBuilder, type ContainerComponentBuilder, Assertions as ContextMenuCommandAssertions, ContextMenuCommandBuilder, type ContextMenuCommandType, Assertions$a as EmbedAssertions, type EmbedAuthorData, type EmbedAuthorOptions, EmbedBuilder, type EmbedFooterData, type EmbedFooterOptions, type EmbedImageData, FileBuilder, Assertions$5 as FileUploadAssertions, FileUploadBuilder, type IconData, Assertions$4 as LabelAssertions, LabelBuilder, type LabelBuilderData, type MappedComponentTypes, MediaGalleryBuilder, MediaGalleryItemBuilder, MentionableSelectMenuBuilder, type MessageActionRowComponentBuilder, type MessageComponentBuilder, type ModalActionRowComponentBuilder, Assertions$7 as ModalAssertions, ModalBuilder, type ModalComponentBuilder, type RGBTuple, RadioGroupBuilder, RadioGroupOptionBuilder, type RestOrArray, RoleSelectMenuBuilder, SectionBuilder, Assertions$6 as SelectMenuAssertions, StringSelectMenuBuilder as SelectMenuBuilder, StringSelectMenuOptionBuilder as SelectMenuOptionBuilder, SeparatorBuilder, SharedNameAndDescription, SharedSlashCommand, SharedSlashCommandOptions, SharedSlashCommandSubcommands, Assertions$1 as SlashCommandAssertions, SlashCommandAttachmentOption, SlashCommandBooleanOption, SlashCommandBuilder, SlashCommandChannelOption, SlashCommandIntegerOption, SlashCommandMentionableOption, SlashCommandNumberOption, type SlashCommandOptionsOnlyBuilder, SlashCommandRoleOption, SlashCommandStringOption, SlashCommandSubcommandBuilder, SlashCommandSubcommandGroupBuilder, type SlashCommandSubcommandsOnlyBuilder, SlashCommandUserOption, StringSelectMenuBuilder, StringSelectMenuOptionBuilder, TextDisplayBuilder, Assertions$8 as TextInputAssertions, TextInputBuilder, ThumbnailBuilder, type ToAPIApplicationCommandOptions, UserSelectMenuBuilder, createComponentBuilder, disableValidators, embedLength, enableValidators, isValidationEnabled, normalizeArray, resolveBuilder, version }; diff --git a/node_modules/@discordjs/builders/dist/index.d.ts b/node_modules/@discordjs/builders/dist/index.d.ts new file mode 100644 index 0000000..b0751ed --- /dev/null +++ b/node_modules/@discordjs/builders/dist/index.d.ts @@ -0,0 +1,16374 @@ +import * as _sapphire_shapeshift from '@sapphire/shapeshift'; +import { APIEmbedField, APIEmbedAuthor, APIEmbed, APIEmbedFooter, APIEmbedImage, APISelectMenuOption, APIMessageComponentEmoji, ButtonStyle, ChannelType, APIBaseComponent, ComponentType, APIActionRowComponent, APIComponentInActionRow, APIMessageComponent, APIModalComponent, APIButtonComponent, Snowflake, APISelectMenuComponent, APIChannelSelectComponent, APIMentionableSelectComponent, APISelectMenuDefaultValue, SelectMenuDefaultValueType, APIRoleSelectComponent, APIStringSelectComponent, APIUserSelectComponent, APITextInputComponent, TextInputStyle, APIComponentInMessageActionRow, APIComponentInModalActionRow, APICheckboxComponent, APICheckboxGroupOption, APICheckboxGroupComponent, APIRadioGroupOption, APIRadioGroupComponent, APIFileUploadComponent, APILabelComponent, APIFileComponent, APISeparatorComponent, SeparatorSpacingSize, APITextDisplayComponent, APIContainerComponent, APIMediaGalleryComponent, APISectionComponent, APIComponentInContainer, APIMediaGalleryItem, APIThumbnailComponent, APIModalInteractionResponseCallbackData, LocalizationMap, LocaleString, InteractionContextType, Permissions, ApplicationIntegrationType, RESTPostAPIChatInputApplicationCommandsJSONBody, ApplicationCommandOptionType, APIApplicationCommandBasicOption, APIApplicationCommandAttachmentOption, APIApplicationCommandBooleanOption, APIApplicationCommandChannelOption, APIApplicationCommandOptionChoice, APIApplicationCommandIntegerOption, APIApplicationCommandMentionableOption, APIApplicationCommandNumberOption, APIApplicationCommandRoleOption, APIApplicationCommandStringOption, APIApplicationCommandUserOption, APIApplicationCommandSubcommandOption, APIApplicationCommandSubcommandGroupOption, APIApplicationCommandOption, Locale, ApplicationCommandType, RESTPostAPIContextMenuApplicationCommandsJSONBody } from 'discord-api-types/v10'; +export * from '@discordjs/formatters'; +import { JSONEncodable, Equatable } from '@discordjs/util'; + +declare const fieldNamePredicate: _sapphire_shapeshift.StringValidator; +declare const fieldValuePredicate: _sapphire_shapeshift.StringValidator; +declare const fieldInlinePredicate: _sapphire_shapeshift.UnionValidator; +declare const embedFieldPredicate: _sapphire_shapeshift.ObjectValidator<{ + name: string; + value: string; + inline: boolean | undefined; +}, _sapphire_shapeshift.UndefinedToOptional<{ + name: string; + value: string; + inline: boolean | undefined; +}>>; +declare const embedFieldsArrayPredicate: _sapphire_shapeshift.ArrayValidator<_sapphire_shapeshift.UndefinedToOptional<{ + name: string; + value: string; + inline: boolean | undefined; +}>[], _sapphire_shapeshift.UndefinedToOptional<{ + name: string; + value: string; + inline: boolean | undefined; +}>>; +declare const fieldLengthPredicate: _sapphire_shapeshift.NumberValidator; +declare function validateFieldLength(amountAdding: number, fields?: APIEmbedField[]): void; +declare const authorNamePredicate: _sapphire_shapeshift.UnionValidator; +declare const imageURLPredicate: _sapphire_shapeshift.UnionValidator; +declare const urlPredicate: _sapphire_shapeshift.UnionValidator; +declare const embedAuthorPredicate: _sapphire_shapeshift.ObjectValidator<{ + name: string | null; + iconURL: string | null | undefined; + url: string | null | undefined; +}, _sapphire_shapeshift.UndefinedToOptional<{ + name: string | null; + iconURL: string | null | undefined; + url: string | null | undefined; +}>>; +declare const RGBPredicate: _sapphire_shapeshift.NumberValidator; +declare const colorPredicate: _sapphire_shapeshift.UnionValidator; +declare const descriptionPredicate$1: _sapphire_shapeshift.UnionValidator; +declare const footerTextPredicate: _sapphire_shapeshift.UnionValidator; +declare const embedFooterPredicate: _sapphire_shapeshift.ObjectValidator<{ + text: string | null; + iconURL: string | null | undefined; +}, _sapphire_shapeshift.UndefinedToOptional<{ + text: string | null; + iconURL: string | null | undefined; +}>>; +declare const timestampPredicate: _sapphire_shapeshift.UnionValidator; +declare const titlePredicate: _sapphire_shapeshift.UnionValidator; + +declare const Assertions$a_RGBPredicate: typeof RGBPredicate; +declare const Assertions$a_authorNamePredicate: typeof authorNamePredicate; +declare const Assertions$a_colorPredicate: typeof colorPredicate; +declare const Assertions$a_embedAuthorPredicate: typeof embedAuthorPredicate; +declare const Assertions$a_embedFieldPredicate: typeof embedFieldPredicate; +declare const Assertions$a_embedFieldsArrayPredicate: typeof embedFieldsArrayPredicate; +declare const Assertions$a_embedFooterPredicate: typeof embedFooterPredicate; +declare const Assertions$a_fieldInlinePredicate: typeof fieldInlinePredicate; +declare const Assertions$a_fieldLengthPredicate: typeof fieldLengthPredicate; +declare const Assertions$a_fieldNamePredicate: typeof fieldNamePredicate; +declare const Assertions$a_fieldValuePredicate: typeof fieldValuePredicate; +declare const Assertions$a_footerTextPredicate: typeof footerTextPredicate; +declare const Assertions$a_imageURLPredicate: typeof imageURLPredicate; +declare const Assertions$a_timestampPredicate: typeof timestampPredicate; +declare const Assertions$a_titlePredicate: typeof titlePredicate; +declare const Assertions$a_urlPredicate: typeof urlPredicate; +declare const Assertions$a_validateFieldLength: typeof validateFieldLength; +declare namespace Assertions$a { + export { Assertions$a_RGBPredicate as RGBPredicate, Assertions$a_authorNamePredicate as authorNamePredicate, Assertions$a_colorPredicate as colorPredicate, descriptionPredicate$1 as descriptionPredicate, Assertions$a_embedAuthorPredicate as embedAuthorPredicate, Assertions$a_embedFieldPredicate as embedFieldPredicate, Assertions$a_embedFieldsArrayPredicate as embedFieldsArrayPredicate, Assertions$a_embedFooterPredicate as embedFooterPredicate, Assertions$a_fieldInlinePredicate as fieldInlinePredicate, Assertions$a_fieldLengthPredicate as fieldLengthPredicate, Assertions$a_fieldNamePredicate as fieldNamePredicate, Assertions$a_fieldValuePredicate as fieldValuePredicate, Assertions$a_footerTextPredicate as footerTextPredicate, Assertions$a_imageURLPredicate as imageURLPredicate, Assertions$a_timestampPredicate as timestampPredicate, Assertions$a_titlePredicate as titlePredicate, Assertions$a_urlPredicate as urlPredicate, Assertions$a_validateFieldLength as validateFieldLength }; +} + +/** + * Normalizes data that is a rest parameter or an array into an array with a depth of 1. + * + * @typeParam ItemType - The data that must satisfy {@link RestOrArray}. + * @param arr - The (possibly variadic) data to normalize + */ +declare function normalizeArray(arr: RestOrArray): ItemType[]; +/** + * Represents data that may be an array or came from a rest parameter. + * + * @remarks + * This type is used throughout builders to ensure both an array and variadic arguments + * may be used. It is normalized with {@link normalizeArray}. + */ +type RestOrArray = Type[] | [Type[]]; + +/** + * A tuple satisfying the RGB color model. + * + * @see {@link https://developer.mozilla.org/docs/Glossary/RGB} + */ +type RGBTuple = [red: number, green: number, blue: number]; +/** + * The base icon data typically used in payloads. + */ +interface IconData { + /** + * The URL of the icon. + */ + iconURL?: string; + /** + * The proxy URL of the icon. + */ + proxyIconURL?: string; +} +/** + * Represents the author data of an embed. + */ +interface EmbedAuthorData extends IconData, Omit { +} +/** + * Represents the author options of an embed. + */ +interface EmbedAuthorOptions extends Omit { +} +/** + * Represents the footer data of an embed. + */ +interface EmbedFooterData extends IconData, Omit { +} +/** + * Represents the footer options of an embed. + */ +interface EmbedFooterOptions extends Omit { +} +/** + * Represents the image data of an embed. + */ +interface EmbedImageData extends Omit { + /** + * The proxy URL for the image. + */ + proxyURL?: string; +} +/** + * A builder that creates API-compatible JSON data for embeds. + */ +declare class EmbedBuilder { + /** + * The API data associated with this embed. + */ + readonly data: APIEmbed; + /** + * Creates a new embed from API data. + * + * @param data - The API data to create this embed with + */ + constructor(data?: APIEmbed); + /** + * Appends fields to the embed. + * + * @remarks + * This method accepts either an array of fields or a variable number of field parameters. + * The maximum amount of fields that can be added is 25. + * @example + * Using an array: + * ```ts + * const fields: APIEmbedField[] = ...; + * const embed = new EmbedBuilder() + * .addFields(fields); + * ``` + * @example + * Using rest parameters (variadic): + * ```ts + * const embed = new EmbedBuilder() + * .addFields( + * { name: 'Field 1', value: 'Value 1' }, + * { name: 'Field 2', value: 'Value 2' }, + * ); + * ``` + * @param fields - The fields to add + */ + addFields(...fields: RestOrArray): this; + /** + * Removes, replaces, or inserts fields for this embed. + * + * @remarks + * This method behaves similarly + * to {@link https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/splice | Array.prototype.splice()}. + * The maximum amount of fields that can be added is 25. + * + * It's useful for modifying and adjusting order of the already-existing fields of an embed. + * @example + * Remove the first field: + * ```ts + * embed.spliceFields(0, 1); + * ``` + * @example + * Remove the first n fields: + * ```ts + * const n = 4; + * embed.spliceFields(0, n); + * ``` + * @example + * Remove the last field: + * ```ts + * embed.spliceFields(-1, 1); + * ``` + * @param index - The index to start at + * @param deleteCount - The number of fields to remove + * @param fields - The replacing field objects + */ + spliceFields(index: number, deleteCount: number, ...fields: APIEmbedField[]): this; + /** + * Sets the fields for this embed. + * + * @remarks + * This method is an alias for {@link EmbedBuilder.spliceFields}. More specifically, + * it splices the entire array of fields, replacing them with the provided fields. + * + * You can set a maximum of 25 fields. + * @param fields - The fields to set + */ + setFields(...fields: RestOrArray): this; + /** + * Sets the author of this embed. + * + * @param options - The options to use + */ + setAuthor(options: EmbedAuthorOptions | null): this; + /** + * Sets the color of this embed. + * + * @param color - The color to use + */ + setColor(color: RGBTuple | number | null): this; + /** + * Sets the description of this embed. + * + * @param description - The description to use + */ + setDescription(description: string | null): this; + /** + * Sets the footer of this embed. + * + * @param options - The footer to use + */ + setFooter(options: EmbedFooterOptions | null): this; + /** + * Sets the image of this embed. + * + * @param url - The image URL to use + */ + setImage(url: string | null): this; + /** + * Sets the thumbnail of this embed. + * + * @param url - The thumbnail URL to use + */ + setThumbnail(url: string | null): this; + /** + * Sets the timestamp of this embed. + * + * @param timestamp - The timestamp or date to use + */ + setTimestamp(timestamp?: Date | number | null): this; + /** + * Sets the title for this embed. + * + * @param title - The title to use + */ + setTitle(title: string | null): this; + /** + * Sets the URL of this embed. + * + * @param url - The URL to use + */ + setURL(url: string | null): this; + /** + * Serializes this builder to API-compatible JSON data. + * + * @remarks + * This method runs validations on the data before serializing it. + * As such, it may throw an error if the data is invalid. + */ + toJSON(): APIEmbed; +} + +/** + * A builder that creates API-compatible JSON data for string select menu options. + */ +declare class StringSelectMenuOptionBuilder implements JSONEncodable { + data: Partial; + /** + * Creates a new string select menu option from API data. + * + * @param data - The API data to create this string select menu option with + * @example + * Creating a string select menu option from an API data object: + * ```ts + * const selectMenuOption = new SelectMenuOptionBuilder({ + * label: 'catchy label', + * value: '1', + * }); + * ``` + * @example + * Creating a string select menu option using setters and API data: + * ```ts + * const selectMenuOption = new SelectMenuOptionBuilder({ + * default: true, + * value: '1', + * }) + * .setLabel('woah'); + * ``` + */ + constructor(data?: Partial); + /** + * Sets the label for this option. + * + * @param label - The label to use + */ + setLabel(label: string): this; + /** + * Sets the value for this option. + * + * @param value - The value to use + */ + setValue(value: string): this; + /** + * Sets the description for this option. + * + * @param description - The description to use + */ + setDescription(description: string): this; + /** + * Sets whether this option is selected by default. + * + * @param isDefault - Whether this option is selected by default + */ + setDefault(isDefault?: boolean): this; + /** + * Sets the emoji to display for this option. + * + * @param emoji - The emoji to use + */ + setEmoji(emoji: APIMessageComponentEmoji): this; + /** + * {@inheritDoc BaseSelectMenuBuilder.toJSON} + */ + toJSON(): APISelectMenuOption; +} + +declare const idValidator: _sapphire_shapeshift.NumberValidator; +declare const customIdValidator: _sapphire_shapeshift.StringValidator; +declare const emojiValidator: _sapphire_shapeshift.ObjectValidator<{ + name?: string | undefined; + id?: string | undefined; + animated?: boolean | undefined; +}, _sapphire_shapeshift.UndefinedToOptional<{ + name?: string | undefined; + id?: string | undefined; + animated?: boolean | undefined; +}>>; +declare const disabledValidator: _sapphire_shapeshift.BooleanValidator; +declare const buttonLabelValidator: _sapphire_shapeshift.StringValidator; +declare const buttonStyleValidator: _sapphire_shapeshift.NativeEnumValidator; +declare const placeholderValidator$1: _sapphire_shapeshift.StringValidator; +declare const minMaxValidator: _sapphire_shapeshift.NumberValidator; +declare const labelValueDescriptionValidator: _sapphire_shapeshift.StringValidator; +/** + * @deprecated Replaced with selectMenuStringOptionPredicate. + */ +declare const jsonOptionValidator: _sapphire_shapeshift.ObjectValidator<{ + label: string; + value: string; + description: string | undefined; + emoji: _sapphire_shapeshift.UndefinedToOptional<{ + name?: string | undefined; + id?: string | undefined; + animated?: boolean | undefined; + }> | undefined; + default: boolean | undefined; +}, _sapphire_shapeshift.UndefinedToOptional<{ + label: string; + value: string; + description: string | undefined; + emoji: _sapphire_shapeshift.UndefinedToOptional<{ + name?: string | undefined; + id?: string | undefined; + animated?: boolean | undefined; + }> | undefined; + default: boolean | undefined; +}>>; +declare const optionValidator: _sapphire_shapeshift.InstanceValidator; +declare const optionsValidator: _sapphire_shapeshift.ArrayValidator; +declare const optionsLengthValidator: _sapphire_shapeshift.NumberValidator; +declare function validateRequiredSelectMenuParameters(options: StringSelectMenuOptionBuilder[], customId?: string): void; +declare const defaultValidator: _sapphire_shapeshift.BooleanValidator; +declare function validateRequiredSelectMenuOptionParameters(label?: string, value?: string): void; +declare const channelTypesValidator: _sapphire_shapeshift.ArrayValidator; +declare const urlValidator: _sapphire_shapeshift.StringValidator; +declare function validateRequiredButtonParameters(style?: ButtonStyle, label?: string, emoji?: APIMessageComponentEmoji, customId?: string, skuId?: string, url?: string): void; + +declare const Assertions$9_buttonLabelValidator: typeof buttonLabelValidator; +declare const Assertions$9_buttonStyleValidator: typeof buttonStyleValidator; +declare const Assertions$9_channelTypesValidator: typeof channelTypesValidator; +declare const Assertions$9_customIdValidator: typeof customIdValidator; +declare const Assertions$9_defaultValidator: typeof defaultValidator; +declare const Assertions$9_disabledValidator: typeof disabledValidator; +declare const Assertions$9_emojiValidator: typeof emojiValidator; +declare const Assertions$9_idValidator: typeof idValidator; +declare const Assertions$9_jsonOptionValidator: typeof jsonOptionValidator; +declare const Assertions$9_labelValueDescriptionValidator: typeof labelValueDescriptionValidator; +declare const Assertions$9_minMaxValidator: typeof minMaxValidator; +declare const Assertions$9_optionValidator: typeof optionValidator; +declare const Assertions$9_optionsLengthValidator: typeof optionsLengthValidator; +declare const Assertions$9_optionsValidator: typeof optionsValidator; +declare const Assertions$9_urlValidator: typeof urlValidator; +declare const Assertions$9_validateRequiredButtonParameters: typeof validateRequiredButtonParameters; +declare const Assertions$9_validateRequiredSelectMenuOptionParameters: typeof validateRequiredSelectMenuOptionParameters; +declare const Assertions$9_validateRequiredSelectMenuParameters: typeof validateRequiredSelectMenuParameters; +declare namespace Assertions$9 { + export { Assertions$9_buttonLabelValidator as buttonLabelValidator, Assertions$9_buttonStyleValidator as buttonStyleValidator, Assertions$9_channelTypesValidator as channelTypesValidator, Assertions$9_customIdValidator as customIdValidator, Assertions$9_defaultValidator as defaultValidator, Assertions$9_disabledValidator as disabledValidator, Assertions$9_emojiValidator as emojiValidator, Assertions$9_idValidator as idValidator, Assertions$9_jsonOptionValidator as jsonOptionValidator, Assertions$9_labelValueDescriptionValidator as labelValueDescriptionValidator, Assertions$9_minMaxValidator as minMaxValidator, Assertions$9_optionValidator as optionValidator, Assertions$9_optionsLengthValidator as optionsLengthValidator, Assertions$9_optionsValidator as optionsValidator, placeholderValidator$1 as placeholderValidator, Assertions$9_urlValidator as urlValidator, Assertions$9_validateRequiredButtonParameters as validateRequiredButtonParameters, Assertions$9_validateRequiredSelectMenuOptionParameters as validateRequiredSelectMenuOptionParameters, Assertions$9_validateRequiredSelectMenuParameters as validateRequiredSelectMenuParameters }; +} + +/** + * Any action row component data represented as an object. + */ +type AnyAPIActionRowComponent = APIActionRowComponent | APIComponentInActionRow | APIMessageComponent | APIModalComponent; +/** + * The base component builder that contains common symbols for all sorts of components. + * + * @typeParam DataType - The type of internal API data that is stored within the component + */ +declare abstract class ComponentBuilder> = APIBaseComponent> implements JSONEncodable { + /** + * The API data associated with this component. + */ + readonly data: Partial; + /** + * Serializes this builder to API-compatible JSON data. + * + * @remarks + * This method runs validations on the data before serializing it. + * As such, it may throw an error if the data is invalid. + */ + abstract toJSON(): AnyAPIActionRowComponent; + /** + * Constructs a new kind of component. + * + * @param data - The data to construct a component out of + */ + constructor(data: Partial); + /** + * Sets the id (not the custom id) for this component. + * + * @param id - The id for this component + */ + setId(id: number): this; + /** + * Clears the id of this component, defaulting to a default incremented id. + */ + clearId(): this; +} + +/** + * A builder that creates API-compatible JSON data for buttons. + */ +declare class ButtonBuilder extends ComponentBuilder { + /** + * Creates a new button from API data. + * + * @param data - The API data to create this button with + * @example + * Creating a button from an API data object: + * ```ts + * const button = new ButtonBuilder({ + * custom_id: 'a cool button', + * style: ButtonStyle.Primary, + * label: 'Click Me', + * emoji: { + * name: 'smile', + * id: '123456789012345678', + * }, + * }); + * ``` + * @example + * Creating a button using setters and API data: + * ```ts + * const button = new ButtonBuilder({ + * style: ButtonStyle.Secondary, + * label: 'Click Me', + * }) + * .setEmoji({ name: '🙂' }) + * .setCustomId('another cool button'); + * ``` + */ + constructor(data?: Partial); + /** + * Sets the style of this button. + * + * @param style - The style to use + */ + setStyle(style: ButtonStyle): this; + /** + * Sets the URL for this button. + * + * @remarks + * This method is only available to buttons using the `Link` button style. + * Only three types of URL schemes are currently supported: `https://`, `http://`, and `discord://`. + * @param url - The URL to use + */ + setURL(url: string): this; + /** + * Sets the custom id for this button. + * + * @remarks + * This method is only applicable to buttons that are not using the `Link` button style. + * @param customId - The custom id to use + */ + setCustomId(customId: string): this; + /** + * Sets the SKU id that represents a purchasable SKU for this button. + * + * @remarks Only available when using premium-style buttons. + * @param skuId - The SKU id to use + */ + setSKUId(skuId: Snowflake): this; + /** + * Sets the emoji to display on this button. + * + * @param emoji - The emoji to use + */ + setEmoji(emoji: APIMessageComponentEmoji): this; + /** + * Sets whether this button is disabled. + * + * @param disabled - Whether to disable this button + */ + setDisabled(disabled?: boolean): this; + /** + * Sets the label for this button. + * + * @param label - The label to use + */ + setLabel(label: string): this; + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON(): APIButtonComponent; +} + +/** + * The base select menu builder that contains common symbols for select menu builders. + * + * @typeParam SelectMenuType - The type of select menu this would be instantiated for. + */ +declare abstract class BaseSelectMenuBuilder extends ComponentBuilder { + /** + * Sets the placeholder for this select menu. + * + * @param placeholder - The placeholder to use + */ + setPlaceholder(placeholder: string): this; + /** + * Sets the minimum values that must be selected in the select menu. + * + * @param minValues - The minimum values that must be selected + */ + setMinValues(minValues: number): this; + /** + * Sets the maximum values that can be selected in the select menu. + * + * @param maxValues - The maximum values that can be selected + */ + setMaxValues(maxValues: number): this; + /** + * Sets the custom id for this select menu. + * + * @param customId - The custom id to use + */ + setCustomId(customId: string): this; + /** + * Sets whether this select menu is disabled. + * + * @param disabled - Whether this select menu is disabled + */ + setDisabled(disabled?: boolean): this; + /** + * Sets whether this select menu is required. + * + * @remarks Only for use in modals. + * @param required - Whether this select menu is required + */ + setRequired(required?: boolean): this; + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON(): SelectMenuType; +} + +/** + * A builder that creates API-compatible JSON data for channel select menus. + */ +declare class ChannelSelectMenuBuilder extends BaseSelectMenuBuilder { + /** + * Creates a new select menu from API data. + * + * @param data - The API data to create this select menu with + * @example + * Creating a select menu from an API data object: + * ```ts + * const selectMenu = new ChannelSelectMenuBuilder({ + * custom_id: 'a cool select menu', + * placeholder: 'select an option', + * max_values: 2, + * }); + * ``` + * @example + * Creating a select menu using setters and API data: + * ```ts + * const selectMenu = new ChannelSelectMenuBuilder({ + * custom_id: 'a cool select menu', + * }) + * .addChannelTypes(ChannelType.GuildText, ChannelType.GuildAnnouncement) + * .setMinValues(2); + * ``` + */ + constructor(data?: Partial); + /** + * Adds channel types to this select menu. + * + * @param types - The channel types to use + */ + addChannelTypes(...types: RestOrArray): this; + /** + * Sets channel types for this select menu. + * + * @param types - The channel types to use + */ + setChannelTypes(...types: RestOrArray): this; + /** + * Adds default channels to this auto populated select menu. + * + * @param channels - The channels to add + */ + addDefaultChannels(...channels: RestOrArray): this; + /** + * Sets default channels for this auto populated select menu. + * + * @param channels - The channels to set + */ + setDefaultChannels(...channels: RestOrArray): this; + /** + * {@inheritDoc BaseSelectMenuBuilder.toJSON} + */ + toJSON(): APIChannelSelectComponent; +} + +/** + * A builder that creates API-compatible JSON data for mentionable select menus. + */ +declare class MentionableSelectMenuBuilder extends BaseSelectMenuBuilder { + /** + * Creates a new select menu from API data. + * + * @param data - The API data to create this select menu with + * @example + * Creating a select menu from an API data object: + * ```ts + * const selectMenu = new MentionableSelectMenuBuilder({ + * custom_id: 'a cool select menu', + * placeholder: 'select an option', + * max_values: 2, + * }); + * ``` + * @example + * Creating a select menu using setters and API data: + * ```ts + * const selectMenu = new MentionableSelectMenuBuilder({ + * custom_id: 'a cool select menu', + * }) + * .setMinValues(1); + * ``` + */ + constructor(data?: Partial); + /** + * Adds default roles to this auto populated select menu. + * + * @param roles - The roles to add + */ + addDefaultRoles(...roles: RestOrArray): this; + /** + * Adds default users to this auto populated select menu. + * + * @param users - The users to add + */ + addDefaultUsers(...users: RestOrArray): this; + /** + * Adds default values to this auto populated select menu. + * + * @param values - The values to add + */ + addDefaultValues(...values: RestOrArray | APISelectMenuDefaultValue>): this; + /** + * Sets default values for this auto populated select menu. + * + * @param values - The values to set + */ + setDefaultValues(...values: RestOrArray | APISelectMenuDefaultValue>): this; +} + +/** + * A builder that creates API-compatible JSON data for role select menus. + */ +declare class RoleSelectMenuBuilder extends BaseSelectMenuBuilder { + /** + * Creates a new select menu from API data. + * + * @param data - The API data to create this select menu with + * @example + * Creating a select menu from an API data object: + * ```ts + * const selectMenu = new RoleSelectMenuBuilder({ + * custom_id: 'a cool select menu', + * placeholder: 'select an option', + * max_values: 2, + * }); + * ``` + * @example + * Creating a select menu using setters and API data: + * ```ts + * const selectMenu = new RoleSelectMenuBuilder({ + * custom_id: 'a cool select menu', + * }) + * .setMinValues(1); + * ``` + */ + constructor(data?: Partial); + /** + * Adds default roles to this auto populated select menu. + * + * @param roles - The roles to add + */ + addDefaultRoles(...roles: RestOrArray): this; + /** + * Sets default roles for this auto populated select menu. + * + * @param roles - The roles to set + */ + setDefaultRoles(...roles: RestOrArray): this; +} + +/** + * A builder that creates API-compatible JSON data for string select menus. + */ +declare class StringSelectMenuBuilder extends BaseSelectMenuBuilder { + /** + * The options within this select menu. + */ + readonly options: StringSelectMenuOptionBuilder[]; + /** + * Creates a new select menu from API data. + * + * @param data - The API data to create this select menu with + * @example + * Creating a select menu from an API data object: + * ```ts + * const selectMenu = new StringSelectMenuBuilder({ + * custom_id: 'a cool select menu', + * placeholder: 'select an option', + * max_values: 2, + * options: [ + * { label: 'option 1', value: '1' }, + * { label: 'option 2', value: '2' }, + * { label: 'option 3', value: '3' }, + * ], + * }); + * ``` + * @example + * Creating a select menu using setters and API data: + * ```ts + * const selectMenu = new StringSelectMenuBuilder({ + * custom_id: 'a cool select menu', + * }) + * .setMinValues(1) + * .addOptions({ + * label: 'Catchy', + * value: 'catch', + * }); + * ``` + */ + constructor(data?: Partial); + /** + * Adds options to this select menu. + * + * @param options - The options to add + */ + addOptions(...options: RestOrArray): this; + /** + * Sets the options for this select menu. + * + * @param options - The options to set + */ + setOptions(...options: RestOrArray): this; + /** + * Removes, replaces, or inserts options for this select menu. + * + * @remarks + * This method behaves similarly + * to {@link https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/splice | Array.prototype.splice()}. + * It's useful for modifying and adjusting the order of existing options. + * @example + * Remove the first option: + * ```ts + * selectMenu.spliceOptions(0, 1); + * ``` + * @example + * Remove the first n option: + * ```ts + * const n = 4; + * selectMenu.spliceOptions(0, n); + * ``` + * @example + * Remove the last option: + * ```ts + * selectMenu.spliceOptions(-1, 1); + * ``` + * @param index - The index to start at + * @param deleteCount - The number of options to remove + * @param options - The replacing option objects or builders + */ + spliceOptions(index: number, deleteCount: number, ...options: RestOrArray): this; + /** + * {@inheritDoc BaseSelectMenuBuilder.toJSON} + */ + toJSON(): APIStringSelectComponent; +} + +/** + * A builder that creates API-compatible JSON data for user select menus. + */ +declare class UserSelectMenuBuilder extends BaseSelectMenuBuilder { + /** + * Creates a new select menu from API data. + * + * @param data - The API data to create this select menu with + * @example + * Creating a select menu from an API data object: + * ```ts + * const selectMenu = new UserSelectMenuBuilder({ + * custom_id: 'a cool select menu', + * placeholder: 'select an option', + * max_values: 2, + * }); + * ``` + * @example + * Creating a select menu using setters and API data: + * ```ts + * const selectMenu = new UserSelectMenuBuilder({ + * custom_id: 'a cool select menu', + * }) + * .setMinValues(1); + * ``` + */ + constructor(data?: Partial); + /** + * Adds default users to this auto populated select menu. + * + * @param users - The users to add + */ + addDefaultUsers(...users: RestOrArray): this; + /** + * Sets default users for this auto populated select menu. + * + * @param users - The users to set + */ + setDefaultUsers(...users: RestOrArray): this; +} + +/** + * A builder that creates API-compatible JSON data for text inputs. + */ +declare class TextInputBuilder extends ComponentBuilder implements Equatable> { + /** + * Creates a new text input from API data. + * + * @param data - The API data to create this text input with + * @example + * Creating a text input from an API data object: + * ```ts + * const textInput = new TextInputBuilder({ + * custom_id: 'a cool text input', + * placeholder: 'Type something', + * style: TextInputStyle.Short, + * }); + * ``` + * @example + * Creating a text input using setters and API data: + * ```ts + * const textInput = new TextInputBuilder({ + * placeholder: 'Type something else', + * }) + * .setCustomId('woah') + * .setStyle(TextInputStyle.Paragraph); + * ``` + */ + constructor(data?: APITextInputComponent & { + type?: ComponentType.TextInput; + }); + /** + * Sets the custom id for this text input. + * + * @param customId - The custom id to use + */ + setCustomId(customId: string): this; + /** + * Sets the label for this text input. + * + * @param label - The label to use + * @deprecated Use a label builder to create a label (and optionally a description) instead. + */ + setLabel(label: string): this; + /** + * Sets the style for this text input. + * + * @param style - The style to use + */ + setStyle(style: TextInputStyle): this; + /** + * Sets the minimum length of text for this text input. + * + * @param minLength - The minimum length of text for this text input + */ + setMinLength(minLength: number): this; + /** + * Sets the maximum length of text for this text input. + * + * @param maxLength - The maximum length of text for this text input + */ + setMaxLength(maxLength: number): this; + /** + * Sets the placeholder for this text input. + * + * @param placeholder - The placeholder to use + */ + setPlaceholder(placeholder: string): this; + /** + * Sets the value for this text input. + * + * @param value - The value to use + */ + setValue(value: string): this; + /** + * Sets whether this text input is required. + * + * @param required - Whether this text input is required + */ + setRequired(required?: boolean): this; + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON(): APITextInputComponent; + /** + * Whether this is equal to another structure. + */ + equals(other: APITextInputComponent | JSONEncodable): boolean; +} + +/** + * The builders that may be used for modals. + */ +type ModalComponentBuilder = ActionRowBuilder | ModalActionRowComponentBuilder; +/** + * The builders that may be used within an action row for messages. + */ +type MessageActionRowComponentBuilder = ButtonBuilder | ChannelSelectMenuBuilder | MentionableSelectMenuBuilder | RoleSelectMenuBuilder | StringSelectMenuBuilder | UserSelectMenuBuilder; +/** + * The builders that may be used within an action row for modals. + */ +type ModalActionRowComponentBuilder = TextInputBuilder; +/** + * Any builder. + */ +type AnyComponentBuilder = MessageActionRowComponentBuilder | ModalActionRowComponentBuilder; +/** + * A builder that creates API-compatible JSON data for action rows. + * + * @typeParam ComponentType - The types of components this action row holds + */ +declare class ActionRowBuilder extends ComponentBuilder> { + /** + * The components within this action row. + */ + readonly components: ComponentType[]; + /** + * Creates a new action row from API data. + * + * @param data - The API data to create this action row with + * @example + * Creating an action row from an API data object: + * ```ts + * const actionRow = new ActionRowBuilder({ + * components: [ + * { + * custom_id: "custom id", + * label: "Type something", + * style: TextInputStyle.Short, + * type: ComponentType.TextInput, + * }, + * ], + * }); + * ``` + * @example + * Creating an action row using setters and API data: + * ```ts + * const actionRow = new ActionRowBuilder({ + * components: [ + * { + * custom_id: "custom id", + * label: "Click me", + * style: ButtonStyle.Primary, + * type: ComponentType.Button, + * }, + * ], + * }) + * .addComponents(button2, button3); + * ``` + */ + constructor({ components, ...data }?: Partial>); + /** + * Adds components to this action row. + * + * @param components - The components to add + */ + addComponents(...components: RestOrArray): this; + /** + * Sets components for this action row. + * + * @param components - The components to set + */ + setComponents(...components: RestOrArray): this; + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON(): APIActionRowComponent>; +} + +/** + * A builder that creates API-compatible JSON data for checkboxes. + */ +declare class CheckboxBuilder extends ComponentBuilder { + /** + * Creates a new checkbox from API data. + * + * @param data - The API data to create this checkbox with + * @example + * Creating a checkbox from an API data object: + * ```ts + * const checkbox = new CheckboxBuilder({ + * custom_id: 'accept_terms', + * default: false, + * }); + * ``` + * @example + * Creating a checkbox using setters and API data: + * ```ts + * const checkbox = new CheckboxBuilder() + * .setCustomId('subscribe_newsletter') + * .setDefault(true); + * ``` + */ + constructor(data?: Partial); + /** + * Sets the custom id of this checkbox. + * + * @param customId - The custom id to use + */ + setCustomId(customId: string): this; + /** + * Sets whether this checkbox is checked by default. + * + * @param isDefault - Whether the checkbox should be checked by default + */ + setDefault(isDefault: boolean): this; + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON(): APICheckboxComponent; +} + +/** + * A builder that creates API-compatible JSON data for checkbox group options. + */ +declare class CheckboxGroupOptionBuilder implements JSONEncodable { + data: Partial; + /** + * Creates a new checkbox group option from API data. + * + * @param data - The API data to create this checkbox group option with + * @example + * Creating a checkbox group option from an API data object: + * ```ts + * const option = new CheckboxGroupOptionBuilder({ + * label: 'Option 1', + * value: 'option_1', + * }); + * ``` + * @example + * Creating a checkbox group option using setters and API data: + * ```ts + * const option = new CheckboxGroupOptionBuilder() + * .setLabel('Option 2') + * .setValue('option_2'); + * ``` + */ + constructor(data?: Partial); + /** + * Sets the label for this option. + * + * @param label - The label to use + */ + setLabel(label: string): this; + /** + * Sets the value for this option. + * + * @param value - The value to use + */ + setValue(value: string): this; + /** + * Sets the description for this option. + * + * @param description - The description to use + */ + setDescription(description: string): this; + /** + * Sets whether this option is selected by default. + * + * @param isDefault - Whether the option should be selected by default + */ + setDefault(isDefault: boolean): this; + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON(): APICheckboxGroupOption; +} + +/** + * A builder that creates API-compatible JSON data for checkbox groups. + */ +declare class CheckboxGroupBuilder extends ComponentBuilder { + /** + * The options within this checkbox group. + */ + readonly options: CheckboxGroupOptionBuilder[]; + /** + * Creates a new checkbox group from API data. + * + * @param data - The API data to create this checkbox group with + * @example + * Creating a checkbox group from an API data object: + * ```ts + * const checkboxGroup = new CheckboxGroupBuilder({ + * custom_id: 'select_options', + * options: [ + * { label: 'Option 1', value: 'option_1' }, + * { label: 'Option 2', value: 'option_2' }, + * ], + * }); + * ``` + * @example + * Creating a checkbox group using setters and API data: + * ```ts + * const checkboxGroup = new CheckboxGroupBuilder() + * .setCustomId('choose_items') + * .setOptions([ + * { label: 'Item A', value: 'item_a' }, + * { label: 'Item B', value: 'item_b' }, + * ]) + * .setMinValues(1) + * .setMaxValues(2); + * ``` + */ + constructor(data?: Partial); + /** + * Sets the custom id of this checkbox group. + * + * @param customId - The custom id to use + */ + setCustomId(customId: string): this; + /** + * Adds options to this checkbox group. + * + * @param options - The options to add + */ + addOptions(...options: RestOrArray): this; + /** + * Sets the options for this checkbox group. + * + * @param options - The options to use + */ + setOptions(...options: RestOrArray): this; + /** + * Removes, replaces, or inserts options for this checkbox group. + * + * @remarks + * This method behaves similarly + * to {@link https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/splice | Array.prototype.splice()}. + * It's useful for modifying and adjusting the order of existing options. + * @param index - The index to start at + * @param deleteCount - The number of options to remove + * @param options - The replacing option objects or builders + */ + spliceOptions(index: number, deleteCount: number, ...options: RestOrArray): this; + /** + * Sets the minimum number of options that must be selected. + * + * @param minValues - The minimum number of options that must be selected + */ + setMinValues(minValues: number): this; + /** + * Sets the maximum number of options that can be selected. + * + * @param maxValues - The maximum number of options that can be selected + */ + setMaxValues(maxValues: number): this; + /** + * Sets whether selecting options is required. + * + * @param required - Whether selecting options is required + */ + setRequired(required: boolean): this; + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON(): APICheckboxGroupComponent; +} + +/** + * A builder that creates API-compatible JSON data for radio group options. + */ +declare class RadioGroupOptionBuilder implements JSONEncodable { + data: Partial; + /** + * Creates a new radio group option from API data. + * + * @param data - The API data to create this radio group option with + * @example + * Creating a radio group option from an API data object: + * ```ts + * const option = new RadioGroupOptionBuilder({ + * label: 'Option 1', + * value: 'option_1', + * }); + * ``` + * @example + * Creating a radio group option using setters and API data: + * ```ts + * const option = new RadioGroupOptionBuilder() + * .setLabel('Option 2') + * .setValue('option_2'); + * ``` + */ + constructor(data?: Partial); + /** + * Sets the label for this option. + * + * @param label - The label to use + */ + setLabel(label: string): this; + /** + * Sets the value for this option. + * + * @param value - The value to use + */ + setValue(value: string): this; + /** + * Sets the description for this option. + * + * @param description - The description to use + */ + setDescription(description: string): this; + /** + * Sets whether this option is selected by default. + * + * @param isDefault - Whether the option should be selected by default + */ + setDefault(isDefault: boolean): this; + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON(): APIRadioGroupOption; +} + +/** + * A builder that creates API-compatible JSON data for radio groups. + */ +declare class RadioGroupBuilder extends ComponentBuilder { + /** + * The options within this radio group. + */ + readonly options: RadioGroupOptionBuilder[]; + /** + * Creates a new radio group from API data. + * + * @param data - The API data to create this radio group with + * @example + * Creating a radio group from an API data object: + * ```ts + * const radioGroup = new RadioGroupBuilder({ + * custom_id: 'select_options', + * options: [ + * { label: 'Option 1', value: 'option_1' }, + * { label: 'Option 2', value: 'option_2' }, + * ], + * }); + * ``` + * @example + * Creating a radio group using setters and API data: + * ```ts + * const radioGroup = new RadioGroupBuilder() + * .setCustomId('choose_items') + * .setOptions([ + * { label: 'Item A', value: 'item_a' }, + * { label: 'Item B', value: 'item_b' }, + * ]) + * ``` + */ + constructor(data?: Partial); + /** + * Sets the custom id of this radio group. + * + * @param customId - The custom id to use + */ + setCustomId(customId: string): this; + /** + * Adds options to this radio group. + * + * @param options - The options to add + */ + addOptions(...options: RestOrArray): this; + /** + * Sets the options for this radio group. + * + * @param options - The options to use + */ + setOptions(...options: RestOrArray): this; + /** + * Removes, replaces, or inserts options for this radio group. + * + * @remarks + * This method behaves similarly + * to {@link https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/splice | Array.prototype.splice()}. + * It's useful for modifying and adjusting the order of existing options. + * @param index - The index to start at + * @param deleteCount - The number of options to remove + * @param options - The replacing option objects or builders + */ + spliceOptions(index: number, deleteCount: number, ...options: RestOrArray): this; + /** + * Sets whether selecting options is required. + * + * @param required - Whether selecting options is required + */ + setRequired(required: boolean): this; + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON(): APIRadioGroupComponent; +} + +/** + * A builder that creates API-compatible JSON data for file uploads. + */ +declare class FileUploadBuilder extends ComponentBuilder { + /** + * Creates a new file upload. + * + * @param data - The API data to create this file upload with + * @example + * Creating a file upload from an API data object: + * ```ts + * const fileUpload = new FileUploadBuilder({ + * custom_id: "file_upload", + * min_values: 2, + * max_values: 5, + * }); + * ``` + * @example + * Creating a file upload using setters and API data: + * ```ts + * const fileUpload = new FileUploadBuilder({ + * custom_id: "file_upload", + * min_values: 2, + * max_values: 5, + * }).setRequired(); + * ``` + */ + constructor(data?: Partial); + /** + * Sets the custom id for this file upload. + * + * @param customId - The custom id to use + */ + setCustomId(customId: string): this; + /** + * Sets the minimum number of file uploads required. + * + * @param minValues - The minimum values that must be uploaded + */ + setMinValues(minValues: number): this; + /** + * Clears the minimum values. + */ + clearMinValues(): this; + /** + * Sets the maximum number of file uploads required. + * + * @param maxValues - The maximum values that can be uploaded + */ + setMaxValues(maxValues: number): this; + /** + * Clears the maximum values. + */ + clearMaxValues(): this; + /** + * Sets whether this file upload is required. + * + * @param required - Whether this file upload is required + */ + setRequired(required?: boolean): this; + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON(): APIFileUploadComponent; +} + +interface LabelBuilderData extends Partial> { + component?: ChannelSelectMenuBuilder | CheckboxBuilder | CheckboxGroupBuilder | FileUploadBuilder | MentionableSelectMenuBuilder | RadioGroupBuilder | RoleSelectMenuBuilder | StringSelectMenuBuilder | TextInputBuilder | UserSelectMenuBuilder; +} +/** + * A builder that creates API-compatible JSON data for labels. + */ +declare class LabelBuilder extends ComponentBuilder { + /** + * @internal + */ + readonly data: LabelBuilderData; + /** + * Creates a new label. + * + * @param data - The API data to create this label with + * @example + * Creating a label from an API data object: + * ```ts + * const label = new LabelBuilder({ + * label: "label", + * component, + * }); + * ``` + * @example + * Creating a label using setters and API data: + * ```ts + * const label = new LabelBuilder({ + * label: 'label', + * component, + * }).setLabel('new text'); + * ``` + */ + constructor(data?: Partial); + /** + * Sets the label for this label. + * + * @param label - The label to use + */ + setLabel(label: string): this; + /** + * Sets the description for this label. + * + * @param description - The description to use + */ + setDescription(description: string): this; + /** + * Clears the description for this label. + */ + clearDescription(): this; + /** + * Sets a string select menu component to this label. + * + * @param input - A function that returns a component builder or an already built builder + */ + setStringSelectMenuComponent(input: APIStringSelectComponent | StringSelectMenuBuilder | ((builder: StringSelectMenuBuilder) => StringSelectMenuBuilder)): this; + /** + * Sets a user select menu component to this label. + * + * @param input - A function that returns a component builder or an already built builder + */ + setUserSelectMenuComponent(input: APIUserSelectComponent | UserSelectMenuBuilder | ((builder: UserSelectMenuBuilder) => UserSelectMenuBuilder)): this; + /** + * Sets a role select menu component to this label. + * + * @param input - A function that returns a component builder or an already built builder + */ + setRoleSelectMenuComponent(input: APIRoleSelectComponent | RoleSelectMenuBuilder | ((builder: RoleSelectMenuBuilder) => RoleSelectMenuBuilder)): this; + /** + * Sets a mentionable select menu component to this label. + * + * @param input - A function that returns a component builder or an already built builder + */ + setMentionableSelectMenuComponent(input: APIMentionableSelectComponent | MentionableSelectMenuBuilder | ((builder: MentionableSelectMenuBuilder) => MentionableSelectMenuBuilder)): this; + /** + * Sets a channel select menu component to this label. + * + * @param input - A function that returns a component builder or an already built builder + */ + setChannelSelectMenuComponent(input: APIChannelSelectComponent | ChannelSelectMenuBuilder | ((builder: ChannelSelectMenuBuilder) => ChannelSelectMenuBuilder)): this; + /** + * Sets a text input component to this label. + * + * @param input - A function that returns a component builder or an already built builder + */ + setTextInputComponent(input: APITextInputComponent | TextInputBuilder | ((builder: TextInputBuilder) => TextInputBuilder)): this; + /** + * Sets a file upload component to this label. + * + * @param input - A function that returns a component builder or an already built builder + */ + setFileUploadComponent(input: APIFileUploadComponent | FileUploadBuilder | ((builder: FileUploadBuilder) => FileUploadBuilder)): this; + /** + * Sets a checkbox component to this label. + * + * @param input - A function that returns a component builder or an already built builder + */ + setCheckboxComponent(input: APICheckboxComponent | CheckboxBuilder | ((builder: CheckboxBuilder) => CheckboxBuilder)): this; + /** + * Sets a checkbox group component to this label. + * + * @param input - A function that returns a component builder or an already built builder + */ + setCheckboxGroupComponent(input: APICheckboxGroupComponent | CheckboxGroupBuilder | ((builder: CheckboxGroupBuilder) => CheckboxGroupBuilder)): this; + /** + * Sets a radio group component to this label. + * + * @param input - A function that returns a component builder or an already built builder + */ + setRadioGroupComponent(input: APIRadioGroupComponent | RadioGroupBuilder | ((builder: RadioGroupBuilder) => RadioGroupBuilder)): this; + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON(): APILabelComponent; +} + +declare class FileBuilder extends ComponentBuilder { + /** + * Creates a new file from API data. + * + * @param data - The API data to create this file with + * @example + * Creating a file from an API data object: + * ```ts + * const file = new FileBuilder({ + * spoiler: true, + * file: { + * url: 'attachment://file.png', + * }, + * }); + * ``` + * @example + * Creating a file using setters and API data: + * ```ts + * const file = new FileBuilder({ + * file: { + * url: 'attachment://image.jpg', + * }, + * }) + * .setSpoiler(false); + * ``` + */ + constructor(data?: Partial); + /** + * Sets the spoiler status of this file. + * + * @param spoiler - The spoiler status to use + */ + setSpoiler(spoiler?: boolean): this; + /** + * Sets the media URL of this file. + * + * @param url - The URL to use + */ + setURL(url: string): this; + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON(): APIFileComponent; +} + +declare class SeparatorBuilder extends ComponentBuilder { + /** + * Creates a new separator from API data. + * + * @param data - The API data to create this separator with + * @example + * Creating a separator from an API data object: + * ```ts + * const separator = new SeparatorBuilder({ + * spacing: SeparatorSpacingSize.Small, + * divider: true, + * }); + * ``` + * @example + * Creating a separator using setters and API data: + * ```ts + * const separator = new SeparatorBuilder({ + * spacing: SeparatorSpacingSize.Large, + * }) + * .setDivider(false); + * ``` + */ + constructor(data?: Partial); + /** + * Sets whether this separator should show a divider line. + * + * @param divider - Whether to show a divider line + */ + setDivider(divider?: boolean): this; + /** + * Sets the spacing of this separator. + * + * @param spacing - The spacing to use + */ + setSpacing(spacing: SeparatorSpacingSize): this; + /** + * Clears the spacing of this separator. + */ + clearSpacing(): this; + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON(): APISeparatorComponent; +} + +declare class TextDisplayBuilder extends ComponentBuilder { + /** + * Creates a new text display from API data. + * + * @param data - The API data to create this text display with + * @example + * Creating a text display from an API data object: + * ```ts + * const textDisplay = new TextDisplayBuilder({ + * content: 'some text', + * }); + * ``` + * @example + * Creating a text display using setters and API data: + * ```ts + * const textDisplay = new TextDisplayBuilder({ + * content: 'old text', + * }) + * .setContent('new text'); + * ``` + */ + constructor(data?: Partial); + /** + * Sets the text of this text display. + * + * @param content - The text to use + */ + setContent(content: string): this; + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON(): APITextDisplayComponent; +} + +/** + * The builders that may be used within a container. + */ +type ContainerComponentBuilder = ActionRowBuilder | FileBuilder | MediaGalleryBuilder | SectionBuilder | SeparatorBuilder | TextDisplayBuilder; +/** + * A builder that creates API-compatible JSON data for a container. + */ +declare class ContainerBuilder extends ComponentBuilder { + /** + * The components within this container. + */ + readonly components: ContainerComponentBuilder[]; + /** + * Creates a new container from API data. + * + * @param data - The API data to create this container with + * @example + * Creating a container from an API data object: + * ```ts + * const container = new ContainerBuilder({ + * components: [ + * { + * content: "Some text here", + * type: ComponentType.TextDisplay, + * }, + * ], + * }); + * ``` + * @example + * Creating a container using setters and API data: + * ```ts + * const container = new ContainerBuilder({ + * components: [ + * { + * content: "# Heading", + * type: ComponentType.TextDisplay, + * }, + * ], + * }) + * .addSeparatorComponents(separator) + * .addSectionComponents(section); + * ``` + */ + constructor({ components, ...data }?: Partial); + /** + * Sets the accent color of this container. + * + * @param color - The color to use + */ + setAccentColor(color?: RGBTuple | number): this; + /** + * Clears the accent color of this container. + */ + clearAccentColor(): this; + /** + * Adds action row components to this container. + * + * @param components - The action row components to add + */ + addActionRowComponents(...components: RestOrArray | APIActionRowComponent | ((builder: ActionRowBuilder) => ActionRowBuilder)>): this; + /** + * Adds file components to this container. + * + * @param components - The file components to add + */ + addFileComponents(...components: RestOrArray FileBuilder)>): this; + /** + * Adds media gallery components to this container. + * + * @param components - The media gallery components to add + */ + addMediaGalleryComponents(...components: RestOrArray MediaGalleryBuilder)>): this; + /** + * Adds section components to this container. + * + * @param components - The section components to add + */ + addSectionComponents(...components: RestOrArray SectionBuilder)>): this; + /** + * Adds separator components to this container. + * + * @param components - The separator components to add + */ + addSeparatorComponents(...components: RestOrArray SeparatorBuilder)>): this; + /** + * Adds text display components to this container. + * + * @param components - The text display components to add + */ + addTextDisplayComponents(...components: RestOrArray TextDisplayBuilder)>): this; + /** + * Removes, replaces, or inserts components for this container. + * + * @param index - The index to start removing, replacing or inserting components + * @param deleteCount - The amount of components to remove + * @param components - The components to set + */ + spliceComponents(index: number, deleteCount: number, ...components: RestOrArray): this; + /** + * Sets the spoiler status of this container. + * + * @param spoiler - The spoiler status to use + */ + setSpoiler(spoiler?: boolean): this; + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON(): APIContainerComponent; +} + +declare class MediaGalleryItemBuilder implements JSONEncodable { + /** + * The API data associated with this media gallery item. + */ + readonly data: Partial; + /** + * Creates a new media gallery item from API data. + * + * @param data - The API data to create this media gallery item with + * @example + * Creating a media gallery item from an API data object: + * ```ts + * const item = new MediaGalleryItemBuilder({ + * description: "Some text here", + * media: { + * url: 'https://cdn.discordapp.com/embed/avatars/2.png', + * }, + * }); + * ``` + * @example + * Creating a media gallery item using setters and API data: + * ```ts + * const item = new MediaGalleryItemBuilder({ + * media: { + * url: 'https://cdn.discordapp.com/embed/avatars/5.png', + * }, + * }) + * .setDescription("alt text"); + * ``` + */ + constructor(data?: Partial); + /** + * Sets the description of this media gallery item. + * + * @param description - The description to use + */ + setDescription(description: string): this; + /** + * Clears the description of this media gallery item. + */ + clearDescription(): this; + /** + * Sets the spoiler status of this media gallery item. + * + * @param spoiler - The spoiler status to use + */ + setSpoiler(spoiler?: boolean): this; + /** + * Sets the media URL of this media gallery item. + * + * @param url - The URL to use + */ + setURL(url: string): this; + /** + * Serializes this builder to API-compatible JSON data. + * + * @remarks + * This method runs validations on the data before serializing it. + * As such, it may throw an error if the data is invalid. + */ + toJSON(): APIMediaGalleryItem; +} + +/** + * A builder that creates API-compatible JSON data for a container. + */ +declare class MediaGalleryBuilder extends ComponentBuilder { + /** + * The components within this container. + */ + readonly items: MediaGalleryItemBuilder[]; + /** + * Creates a new media gallery from API data. + * + * @param data - The API data to create this media gallery with + * @example + * Creating a media gallery from an API data object: + * ```ts + * const mediaGallery = new MediaGalleryBuilder({ + * items: [ + * { + * description: "Some text here", + * media: { + * url: 'https://cdn.discordapp.com/embed/avatars/2.png', + * }, + * }, + * ], + * }); + * ``` + * @example + * Creating a media gallery using setters and API data: + * ```ts + * const mediaGallery = new MediaGalleryBuilder({ + * items: [ + * { + * description: "alt text", + * media: { + * url: 'https://cdn.discordapp.com/embed/avatars/5.png', + * }, + * }, + * ], + * }) + * .addItems(item2, item3); + * ``` + */ + constructor({ items, ...data }?: Partial); + /** + * Adds items to this media gallery. + * + * @param items - The items to add + */ + addItems(...items: RestOrArray MediaGalleryItemBuilder)>): this; + /** + * Removes, replaces, or inserts media gallery items for this media gallery. + * + * @param index - The index to start removing, replacing or inserting items + * @param deleteCount - The amount of items to remove + * @param items - The items to insert + */ + spliceItems(index: number, deleteCount: number, ...items: RestOrArray MediaGalleryItemBuilder)>): this; + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON(): APIMediaGalleryComponent; +} + +/** + * A builder that creates API-compatible JSON data for a section. + */ +declare class SectionBuilder extends ComponentBuilder { + /** + * The components within this section. + */ + readonly components: ComponentBuilder[]; + /** + * The accessory of this section. + */ + readonly accessory?: ButtonBuilder | ThumbnailBuilder; + /** + * Creates a new section from API data. + * + * @param data - The API data to create this section with + * @example + * Creating a section from an API data object: + * ```ts + * const section = new SectionBuilder({ + * components: [ + * { + * content: "Some text here", + * type: ComponentType.TextDisplay, + * }, + * ], + * accessory: { + * media: { + * url: 'https://cdn.discordapp.com/embed/avatars/3.png', + * }, + * } + * }); + * ``` + * @example + * Creating a section using setters and API data: + * ```ts + * const section = new SectionBuilder({ + * components: [ + * { + * content: "# Heading", + * type: ComponentType.TextDisplay, + * }, + * ], + * }) + * .setPrimaryButtonAccessory(button); + * ``` + */ + constructor({ components, accessory, ...data }?: Partial); + /** + * Sets the accessory of this section to a button. + * + * @param accessory - The accessory to use + */ + setButtonAccessory(accessory: APIButtonComponent | ButtonBuilder | ((builder: ButtonBuilder) => ButtonBuilder)): this; + /** + * Sets the accessory of this section to a thumbnail. + * + * @param accessory - The accessory to use + */ + setThumbnailAccessory(accessory: APIThumbnailComponent | ThumbnailBuilder | ((builder: ThumbnailBuilder) => ThumbnailBuilder)): this; + /** + * Adds text display components to this section. + * + * @param components - The text display components to add + */ + addTextDisplayComponents(...components: RestOrArray TextDisplayBuilder)>): this; + /** + * Removes, replaces, or inserts text display components for this section. + * + * @param index - The index to start removing, replacing or inserting text display components + * @param deleteCount - The amount of text display components to remove + * @param components - The text display components to insert + */ + spliceTextDisplayComponents(index: number, deleteCount: number, ...components: RestOrArray TextDisplayBuilder)>): this; + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON(): APISectionComponent; +} + +declare class ThumbnailBuilder extends ComponentBuilder { + /** + * Creates a new thumbnail from API data. + * + * @param data - The API data to create this thumbnail with + * @example + * Creating a thumbnail from an API data object: + * ```ts + * const thumbnail = new ThumbnailBuilder({ + * description: 'some text', + * media: { + * url: 'https://cdn.discordapp.com/embed/avatars/4.png', + * }, + * }); + * ``` + * @example + * Creating a thumbnail using setters and API data: + * ```ts + * const thumbnail = new ThumbnailBuilder({ + * media: { + * url: 'attachment://image.png', + * }, + * }) + * .setDescription('alt text'); + * ``` + */ + constructor(data?: Partial); + /** + * Sets the description of this thumbnail. + * + * @param description - The description to use + */ + setDescription(description: string): this; + /** + * Clears the description of this thumbnail. + */ + clearDescription(): this; + /** + * Sets the spoiler status of this thumbnail. + * + * @param spoiler - The spoiler status to use + */ + setSpoiler(spoiler?: boolean): this; + /** + * Sets the media URL of this thumbnail. + * + * @param url - The URL to use + */ + setURL(url: string): this; + /** + * {@inheritdoc ComponentBuilder.toJSON} + */ + toJSON(): APIThumbnailComponent; +} + +/** + * The builders that may be used for messages. + */ +type MessageComponentBuilder = ActionRowBuilder | ContainerBuilder | FileBuilder | MediaGalleryBuilder | MessageActionRowComponentBuilder | SectionBuilder | SeparatorBuilder | TextDisplayBuilder | ThumbnailBuilder; +/** + * Components here are mapped to their respective builder. + */ +interface MappedComponentTypes { + /** + * The action row component type is associated with an {@link ActionRowBuilder}. + */ + [ComponentType.ActionRow]: ActionRowBuilder; + /** + * The button component type is associated with a {@link ButtonBuilder}. + */ + [ComponentType.Button]: ButtonBuilder; + /** + * The string select component type is associated with a {@link StringSelectMenuBuilder}. + */ + [ComponentType.StringSelect]: StringSelectMenuBuilder; + /** + * The text input component type is associated with a {@link TextInputBuilder}. + */ + [ComponentType.TextInput]: TextInputBuilder; + /** + * The user select component type is associated with a {@link UserSelectMenuBuilder}. + */ + [ComponentType.UserSelect]: UserSelectMenuBuilder; + /** + * The role select component type is associated with a {@link RoleSelectMenuBuilder}. + */ + [ComponentType.RoleSelect]: RoleSelectMenuBuilder; + /** + * The mentionable select component type is associated with a {@link MentionableSelectMenuBuilder}. + */ + [ComponentType.MentionableSelect]: MentionableSelectMenuBuilder; + /** + * The channel select component type is associated with a {@link ChannelSelectMenuBuilder}. + */ + [ComponentType.ChannelSelect]: ChannelSelectMenuBuilder; + /** + * The file component type is associated with a {@link FileBuilder}. + */ + [ComponentType.File]: FileBuilder; + /** + * The separator component type is associated with a {@link SeparatorBuilder}. + */ + [ComponentType.Separator]: SeparatorBuilder; + /** + * The container component type is associated with a {@link ContainerBuilder}. + */ + [ComponentType.Container]: ContainerBuilder; + /** + * The text display component type is associated with a {@link TextDisplayBuilder}. + */ + [ComponentType.TextDisplay]: TextDisplayBuilder; + /** + * The thumbnail component type is associated with a {@link ThumbnailBuilder}. + */ + [ComponentType.Thumbnail]: ThumbnailBuilder; + /** + * The section component type is associated with a {@link SectionBuilder}. + */ + [ComponentType.Section]: SectionBuilder; + /** + * The media gallery component type is associated with a {@link MediaGalleryBuilder}. + */ + [ComponentType.MediaGallery]: MediaGalleryBuilder; + /** + * The label component type is associated with a {@link LabelBuilder}. + */ + [ComponentType.Label]: LabelBuilder; + /** + * The file upload component type is associated with a {@link FileUploadBuilder}. + */ + [ComponentType.FileUpload]: FileUploadBuilder; + /** + * The checkbox component type is associated with a {@link CheckboxBuilder}. + */ + [ComponentType.Checkbox]: CheckboxBuilder; + /** + * The checkbox group component type is associated with a {@link CheckboxGroupBuilder}. + */ + [ComponentType.CheckboxGroup]: CheckboxGroupBuilder; + /** + * The radio group component type is associated with a {@link RadioGroupBuilder}. + */ + [ComponentType.RadioGroup]: RadioGroupBuilder; +} +/** + * Factory for creating components from API data. + * + * @typeParam ComponentType - The type of component to use + * @param data - The API data to transform to a component class + */ +declare function createComponentBuilder(data: (APIModalComponent | APIMessageComponent) & { + type: ComponentType; +}): MappedComponentTypes[ComponentType]; +/** + * Factory for creating components from API data. + * + * @typeParam ComponentBuilder - The type of component to use + * @param data - The API data to transform to a component class + */ +declare function createComponentBuilder(data: ComponentBuilder): ComponentBuilder; +declare function resolveBuilder, Builder extends JSONEncodable>(builder: Builder | ComponentType | ((builder: Builder) => Builder), Constructor: new (data?: ComponentType) => Builder): Builder; + +declare const textInputStyleValidator: _sapphire_shapeshift.NativeEnumValidator; +declare const minLengthValidator: _sapphire_shapeshift.NumberValidator; +declare const maxLengthValidator: _sapphire_shapeshift.NumberValidator; +declare const requiredValidator: _sapphire_shapeshift.BooleanValidator; +declare const valueValidator: _sapphire_shapeshift.StringValidator; +declare const placeholderValidator: _sapphire_shapeshift.StringValidator; +declare const labelValidator: _sapphire_shapeshift.StringValidator; +declare const textInputPredicate: _sapphire_shapeshift.ObjectValidator<{ + type: ComponentType; + custom_id: string; + style: TextInputStyle; + id: number | undefined; + min_length: number | undefined; + max_length: number | undefined; + placeholder: string | undefined; + value: string | undefined; + required: boolean | undefined; +}, _sapphire_shapeshift.UndefinedToOptional<{ + type: ComponentType; + custom_id: string; + style: TextInputStyle; + id: number | undefined; + min_length: number | undefined; + max_length: number | undefined; + placeholder: string | undefined; + value: string | undefined; + required: boolean | undefined; +}>>; +declare function validateRequiredParameters$3(customId?: string, style?: TextInputStyle): void; + +declare const Assertions$8_labelValidator: typeof labelValidator; +declare const Assertions$8_maxLengthValidator: typeof maxLengthValidator; +declare const Assertions$8_minLengthValidator: typeof minLengthValidator; +declare const Assertions$8_placeholderValidator: typeof placeholderValidator; +declare const Assertions$8_requiredValidator: typeof requiredValidator; +declare const Assertions$8_textInputPredicate: typeof textInputPredicate; +declare const Assertions$8_textInputStyleValidator: typeof textInputStyleValidator; +declare const Assertions$8_valueValidator: typeof valueValidator; +declare namespace Assertions$8 { + export { Assertions$8_labelValidator as labelValidator, Assertions$8_maxLengthValidator as maxLengthValidator, Assertions$8_minLengthValidator as minLengthValidator, Assertions$8_placeholderValidator as placeholderValidator, Assertions$8_requiredValidator as requiredValidator, Assertions$8_textInputPredicate as textInputPredicate, Assertions$8_textInputStyleValidator as textInputStyleValidator, validateRequiredParameters$3 as validateRequiredParameters, Assertions$8_valueValidator as valueValidator }; +} + +/** + * A builder that creates API-compatible JSON data for modals. + */ +declare class ModalBuilder implements JSONEncodable { + /** + * The API data associated with this modal. + */ + readonly data: Partial; + /** + * The components within this modal. + */ + readonly components: (ActionRowBuilder | LabelBuilder | TextDisplayBuilder)[]; + /** + * Creates a new modal from API data. + * + * @param data - The API data to create this modal with + */ + constructor({ components, ...data }?: Partial); + /** + * Sets the title of this modal. + * + * @param title - The title to use + */ + setTitle(title: string): this; + /** + * Sets the custom id of this modal. + * + * @param customId - The custom id to use + */ + setCustomId(customId: string): this; + /** + * Adds components to this modal. + * + * @param components - The components to add + * @deprecated Use {@link ModalBuilder.addLabelComponents} or {@link ModalBuilder.addTextDisplayComponents} instead + */ + addComponents(...components: RestOrArray | APIActionRowComponent | APILabelComponent | APITextDisplayComponent | APITextInputComponent | LabelBuilder | TextDisplayBuilder | TextInputBuilder>): this; + /** + * Adds label components to this modal. + * + * @param components - The components to add + */ + addLabelComponents(...components: RestOrArray LabelBuilder)>): this; + /** + * Adds text display components to this modal. + * + * @param components - The components to add + */ + addTextDisplayComponents(...components: RestOrArray TextDisplayBuilder)>): this; + /** + * Adds action rows to this modal. + * + * @param components - The components to add + * @deprecated Use {@link ModalBuilder.addLabelComponents} instead + */ + addActionRowComponents(...components: RestOrArray | APIActionRowComponent | ((builder: ActionRowBuilder) => ActionRowBuilder)>): this; + /** + * Sets the labels for this modal. + * + * @param components - The components to set + */ + setLabelComponents(...components: RestOrArray LabelBuilder)>): this; + /** + * Removes, replaces, or inserts labels for this modal. + * + * @remarks + * This method behaves similarly + * to {@link https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/splice | Array.prototype.splice()}. + * The maximum amount of labels that can be added is 5. + * + * It's useful for modifying and adjusting order of the already-existing labels of a modal. + * @example + * Remove the first label: + * ```ts + * modal.spliceLabelComponents(0, 1); + * ``` + * @example + * Remove the first n labels: + * ```ts + * const n = 4; + * modal.spliceLabelComponents(0, n); + * ``` + * @example + * Remove the last label: + * ```ts + * modal.spliceLabelComponents(-1, 1); + * ``` + * @param index - The index to start at + * @param deleteCount - The number of labels to remove + * @param labels - The replacing label objects + */ + spliceLabelComponents(index: number, deleteCount: number, ...labels: (APILabelComponent | LabelBuilder | ((builder: LabelBuilder) => LabelBuilder))[]): this; + /** + * Sets components for this modal. + * + * @param components - The components to set + * @deprecated Use {@link ModalBuilder.setLabelComponents} instead + */ + setComponents(...components: RestOrArray | LabelBuilder | TextDisplayBuilder>): this; + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON(): APIModalInteractionResponseCallbackData; +} + +declare const titleValidator: _sapphire_shapeshift.StringValidator; +declare const componentsValidator: _sapphire_shapeshift.ArrayValidator<[LabelBuilder | ActionRowBuilder | TextDisplayBuilder, ...(LabelBuilder | ActionRowBuilder | TextDisplayBuilder)[]], LabelBuilder | ActionRowBuilder | TextDisplayBuilder>; +declare function validateRequiredParameters$2(customId?: string, title?: string, components?: (ActionRowBuilder | LabelBuilder | TextDisplayBuilder)[]): void; + +declare const Assertions$7_componentsValidator: typeof componentsValidator; +declare const Assertions$7_titleValidator: typeof titleValidator; +declare namespace Assertions$7 { + export { Assertions$7_componentsValidator as componentsValidator, Assertions$7_titleValidator as titleValidator, validateRequiredParameters$2 as validateRequiredParameters }; +} + +declare const selectMenuChannelPredicate: _sapphire_shapeshift.ObjectValidator<{ + id: number | undefined; + placeholder: string | undefined; + min_values: number | undefined; + max_values: number | undefined; + custom_id: string; + disabled: boolean | undefined; +} & { + type: ComponentType; + channel_types: ChannelType[] | undefined; + default_values: [] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | undefined; +}, _sapphire_shapeshift.UndefinedToOptional<{ + id: number | undefined; + placeholder: string | undefined; + min_values: number | undefined; + max_values: number | undefined; + custom_id: string; + disabled: boolean | undefined; +} & { + type: ComponentType; + channel_types: ChannelType[] | undefined; + default_values: [] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | undefined; +}>>; +declare const selectMenuMentionablePredicate: _sapphire_shapeshift.ObjectValidator<{ + id: number | undefined; + placeholder: string | undefined; + min_values: number | undefined; + max_values: number | undefined; + custom_id: string; + disabled: boolean | undefined; +} & { + type: ComponentType; + default_values: [] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | undefined; +}, _sapphire_shapeshift.UndefinedToOptional<{ + id: number | undefined; + placeholder: string | undefined; + min_values: number | undefined; + max_values: number | undefined; + custom_id: string; + disabled: boolean | undefined; +} & { + type: ComponentType; + default_values: [] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | undefined; +}>>; +declare const selectMenuRolePredicate: _sapphire_shapeshift.ObjectValidator<{ + id: number | undefined; + placeholder: string | undefined; + min_values: number | undefined; + max_values: number | undefined; + custom_id: string; + disabled: boolean | undefined; +} & { + type: ComponentType; + default_values: [] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | undefined; +}, _sapphire_shapeshift.UndefinedToOptional<{ + id: number | undefined; + placeholder: string | undefined; + min_values: number | undefined; + max_values: number | undefined; + custom_id: string; + disabled: boolean | undefined; +} & { + type: ComponentType; + default_values: [] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | undefined; +}>>; +declare const selectMenuUserPredicate: _sapphire_shapeshift.ObjectValidator<{ + id: number | undefined; + placeholder: string | undefined; + min_values: number | undefined; + max_values: number | undefined; + custom_id: string; + disabled: boolean | undefined; +} & { + type: ComponentType; + default_values: [] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | undefined; +}, _sapphire_shapeshift.UndefinedToOptional<{ + id: number | undefined; + placeholder: string | undefined; + min_values: number | undefined; + max_values: number | undefined; + custom_id: string; + disabled: boolean | undefined; +} & { + type: ComponentType; + default_values: [] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + type: /*elided*/ any; + }>] | undefined; +}>>; +declare const selectMenuStringOptionPredicate: _sapphire_shapeshift.ObjectValidator<{ + label: string; + value: string; + description: string | undefined; + emoji: _sapphire_shapeshift.UndefinedToOptional<{ + name?: string | undefined; + id?: string | undefined; + animated?: boolean | undefined; + }> | undefined; + default: boolean | undefined; +}, _sapphire_shapeshift.UndefinedToOptional<{ + label: string; + value: string; + description: string | undefined; + emoji: _sapphire_shapeshift.UndefinedToOptional<{ + name?: string | undefined; + id?: string | undefined; + animated?: boolean | undefined; + }> | undefined; + default: boolean | undefined; +}>>; +declare const selectMenuStringPredicate: _sapphire_shapeshift.ObjectValidator<{ + id: number | undefined; + placeholder: string | undefined; + min_values: number | undefined; + max_values: number | undefined; + custom_id: string; + disabled: boolean | undefined; +} & { + type: ComponentType; + options: [] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>]; +}, _sapphire_shapeshift.UndefinedToOptional<{ + id: number | undefined; + placeholder: string | undefined; + min_values: number | undefined; + max_values: number | undefined; + custom_id: string; + disabled: boolean | undefined; +} & { + type: ComponentType; + options: [] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + emoji: /*elided*/ any; + default: /*elided*/ any; + }>]; +}>>; + +declare const Assertions$6_selectMenuChannelPredicate: typeof selectMenuChannelPredicate; +declare const Assertions$6_selectMenuMentionablePredicate: typeof selectMenuMentionablePredicate; +declare const Assertions$6_selectMenuRolePredicate: typeof selectMenuRolePredicate; +declare const Assertions$6_selectMenuStringOptionPredicate: typeof selectMenuStringOptionPredicate; +declare const Assertions$6_selectMenuStringPredicate: typeof selectMenuStringPredicate; +declare const Assertions$6_selectMenuUserPredicate: typeof selectMenuUserPredicate; +declare namespace Assertions$6 { + export { Assertions$6_selectMenuChannelPredicate as selectMenuChannelPredicate, Assertions$6_selectMenuMentionablePredicate as selectMenuMentionablePredicate, Assertions$6_selectMenuRolePredicate as selectMenuRolePredicate, Assertions$6_selectMenuStringOptionPredicate as selectMenuStringOptionPredicate, Assertions$6_selectMenuStringPredicate as selectMenuStringPredicate, Assertions$6_selectMenuUserPredicate as selectMenuUserPredicate }; +} + +declare const fileUploadPredicate: _sapphire_shapeshift.ObjectValidator<{ + type: ComponentType; + id: number | undefined; + custom_id: string; + min_values: number | undefined; + max_values: number | undefined; + required: boolean | undefined; +}, _sapphire_shapeshift.UndefinedToOptional<{ + type: ComponentType; + id: number | undefined; + custom_id: string; + min_values: number | undefined; + max_values: number | undefined; + required: boolean | undefined; +}>>; + +declare const Assertions$5_fileUploadPredicate: typeof fileUploadPredicate; +declare namespace Assertions$5 { + export { Assertions$5_fileUploadPredicate as fileUploadPredicate }; +} + +declare const labelPredicate: _sapphire_shapeshift.ObjectValidator<{ + id: number | undefined; + type: ComponentType; + label: string; + description: string | undefined; + component: _sapphire_shapeshift.UndefinedToOptional<{ + type: /*elided*/ any; + custom_id: /*elided*/ any; + id: /*elided*/ any; + default: /*elided*/ any; + }> | _sapphire_shapeshift.UndefinedToOptional<{ + type: /*elided*/ any; + custom_id: /*elided*/ any; + id: /*elided*/ any; + options: /*elided*/ any; + required: /*elided*/ any; + }> | _sapphire_shapeshift.UndefinedToOptional<{ + type: /*elided*/ any; + id: /*elided*/ any; + custom_id: /*elided*/ any; + min_values: /*elided*/ any; + max_values: /*elided*/ any; + required: /*elided*/ any; + }> | _sapphire_shapeshift.UndefinedToOptional<{ + type: /*elided*/ any; + custom_id: /*elided*/ any; + style: /*elided*/ any; + id: /*elided*/ any; + min_length: /*elided*/ any; + max_length: /*elided*/ any; + placeholder: /*elided*/ any; + value: /*elided*/ any; + required: /*elided*/ any; + }> | _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + placeholder: /*elided*/ any; + min_values: /*elided*/ any; + max_values: /*elided*/ any; + custom_id: /*elided*/ any; + disabled: /*elided*/ any; + } & { + type: /*elided*/ any; + default_values: /*elided*/ any; + }> | _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + placeholder: /*elided*/ any; + min_values: /*elided*/ any; + max_values: /*elided*/ any; + custom_id: /*elided*/ any; + disabled: /*elided*/ any; + } & { + type: /*elided*/ any; + options: /*elided*/ any; + }>; +}, _sapphire_shapeshift.UndefinedToOptional<{ + id: number | undefined; + type: ComponentType; + label: string; + description: string | undefined; + component: _sapphire_shapeshift.UndefinedToOptional<{ + type: /*elided*/ any; + custom_id: /*elided*/ any; + id: /*elided*/ any; + default: /*elided*/ any; + }> | _sapphire_shapeshift.UndefinedToOptional<{ + type: /*elided*/ any; + custom_id: /*elided*/ any; + id: /*elided*/ any; + options: /*elided*/ any; + required: /*elided*/ any; + }> | _sapphire_shapeshift.UndefinedToOptional<{ + type: /*elided*/ any; + id: /*elided*/ any; + custom_id: /*elided*/ any; + min_values: /*elided*/ any; + max_values: /*elided*/ any; + required: /*elided*/ any; + }> | _sapphire_shapeshift.UndefinedToOptional<{ + type: /*elided*/ any; + custom_id: /*elided*/ any; + style: /*elided*/ any; + id: /*elided*/ any; + min_length: /*elided*/ any; + max_length: /*elided*/ any; + placeholder: /*elided*/ any; + value: /*elided*/ any; + required: /*elided*/ any; + }> | _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + placeholder: /*elided*/ any; + min_values: /*elided*/ any; + max_values: /*elided*/ any; + custom_id: /*elided*/ any; + disabled: /*elided*/ any; + } & { + type: /*elided*/ any; + default_values: /*elided*/ any; + }> | _sapphire_shapeshift.UndefinedToOptional<{ + id: /*elided*/ any; + placeholder: /*elided*/ any; + min_values: /*elided*/ any; + max_values: /*elided*/ any; + custom_id: /*elided*/ any; + disabled: /*elided*/ any; + } & { + type: /*elided*/ any; + options: /*elided*/ any; + }>; +}>>; + +declare const Assertions$4_labelPredicate: typeof labelPredicate; +declare namespace Assertions$4 { + export { Assertions$4_labelPredicate as labelPredicate }; +} + +declare const unfurledMediaItemPredicate: _sapphire_shapeshift.ObjectValidator<{ + url: string; +}, _sapphire_shapeshift.UndefinedToOptional<{ + url: string; +}>>; +declare const descriptionPredicate: _sapphire_shapeshift.StringValidator; +declare const filePredicate: _sapphire_shapeshift.ObjectValidator<{ + url: string; +}, _sapphire_shapeshift.UndefinedToOptional<{ + url: string; +}>>; +declare const spoilerPredicate: _sapphire_shapeshift.BooleanValidator; +declare const dividerPredicate: _sapphire_shapeshift.BooleanValidator; +declare const spacingPredicate: _sapphire_shapeshift.NativeEnumValidator; +declare const textDisplayContentPredicate: _sapphire_shapeshift.StringValidator; +declare const accessoryPredicate: _sapphire_shapeshift.UnionValidator; +declare const containerColorPredicate: _sapphire_shapeshift.UnionValidator; +declare function assertReturnOfBuilder$1(input: unknown, ExpectedInstanceOf: new () => ReturnType): asserts input is ReturnType; +declare function validateComponentArray(input: unknown, min: number, max: number, ExpectedInstanceOf?: new () => ReturnType): asserts input is ReturnType[]; + +declare const Assertions$3_accessoryPredicate: typeof accessoryPredicate; +declare const Assertions$3_containerColorPredicate: typeof containerColorPredicate; +declare const Assertions$3_descriptionPredicate: typeof descriptionPredicate; +declare const Assertions$3_dividerPredicate: typeof dividerPredicate; +declare const Assertions$3_filePredicate: typeof filePredicate; +declare const Assertions$3_spacingPredicate: typeof spacingPredicate; +declare const Assertions$3_spoilerPredicate: typeof spoilerPredicate; +declare const Assertions$3_textDisplayContentPredicate: typeof textDisplayContentPredicate; +declare const Assertions$3_unfurledMediaItemPredicate: typeof unfurledMediaItemPredicate; +declare const Assertions$3_validateComponentArray: typeof validateComponentArray; +declare namespace Assertions$3 { + export { Assertions$3_accessoryPredicate as accessoryPredicate, assertReturnOfBuilder$1 as assertReturnOfBuilder, Assertions$3_containerColorPredicate as containerColorPredicate, Assertions$3_descriptionPredicate as descriptionPredicate, Assertions$3_dividerPredicate as dividerPredicate, Assertions$3_filePredicate as filePredicate, Assertions$3_spacingPredicate as spacingPredicate, Assertions$3_spoilerPredicate as spoilerPredicate, Assertions$3_textDisplayContentPredicate as textDisplayContentPredicate, Assertions$3_unfurledMediaItemPredicate as unfurledMediaItemPredicate, Assertions$3_validateComponentArray as validateComponentArray }; +} + +declare const checkboxPredicate: _sapphire_shapeshift.ObjectValidator<{ + type: ComponentType; + custom_id: string; + id: number | undefined; + default: boolean | undefined; +}, _sapphire_shapeshift.UndefinedToOptional<{ + type: ComponentType; + custom_id: string; + id: number | undefined; + default: boolean | undefined; +}>>; +declare const checkboxGroupOptionPredicate: _sapphire_shapeshift.ObjectValidator<{ + label: string; + value: string; + description: string | undefined; + default: boolean | undefined; +}, _sapphire_shapeshift.UndefinedToOptional<{ + label: string; + value: string; + description: string | undefined; + default: boolean | undefined; +}>>; +declare const checkboxGroupPredicate: _sapphire_shapeshift.ObjectValidator<{ + type: ComponentType; + custom_id: string; + id: number | undefined; + options: [] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>]; + min_values: number | undefined; + max_values: number | undefined; + required: boolean | undefined; +}, _sapphire_shapeshift.UndefinedToOptional<{ + type: ComponentType; + custom_id: string; + id: number | undefined; + options: [] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>]; + min_values: number | undefined; + max_values: number | undefined; + required: boolean | undefined; +}>>; +declare const radioGroupOptionPredicate: _sapphire_shapeshift.ObjectValidator<{ + label: string; + value: string; + description: string | undefined; + default: boolean | undefined; +}, _sapphire_shapeshift.UndefinedToOptional<{ + label: string; + value: string; + description: string | undefined; + default: boolean | undefined; +}>>; +declare const radioGroupPredicate: _sapphire_shapeshift.ObjectValidator<{ + type: ComponentType; + custom_id: string; + id: number | undefined; + options: [] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>]; + required: boolean | undefined; +}, _sapphire_shapeshift.UndefinedToOptional<{ + type: ComponentType; + custom_id: string; + id: number | undefined; + options: [] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>] | [_sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>, _sapphire_shapeshift.UndefinedToOptional<{ + label: /*elided*/ any; + value: /*elided*/ any; + description: /*elided*/ any; + default: /*elided*/ any; + }>]; + required: boolean | undefined; +}>>; + +declare const Assertions$2_checkboxGroupOptionPredicate: typeof checkboxGroupOptionPredicate; +declare const Assertions$2_checkboxGroupPredicate: typeof checkboxGroupPredicate; +declare const Assertions$2_checkboxPredicate: typeof checkboxPredicate; +declare const Assertions$2_radioGroupOptionPredicate: typeof radioGroupOptionPredicate; +declare const Assertions$2_radioGroupPredicate: typeof radioGroupPredicate; +declare namespace Assertions$2 { + export { Assertions$2_checkboxGroupOptionPredicate as checkboxGroupOptionPredicate, Assertions$2_checkboxGroupPredicate as checkboxGroupPredicate, Assertions$2_checkboxPredicate as checkboxPredicate, Assertions$2_radioGroupOptionPredicate as radioGroupOptionPredicate, Assertions$2_radioGroupPredicate as radioGroupPredicate }; +} + +/** + * This mixin holds name and description symbols for slash commands. + */ +declare class SharedNameAndDescription { + /** + * The name of this command. + */ + readonly name: string; + /** + * The name localizations of this command. + */ + readonly name_localizations?: LocalizationMap; + /** + * The description of this command. + */ + readonly description: string; + /** + * The description localizations of this command. + */ + readonly description_localizations?: LocalizationMap; + /** + * Sets the name of this command. + * + * @param name - The name to use + */ + setName(name: string): this; + /** + * Sets the description of this command. + * + * @param description - The description to use + */ + setDescription(description: string): this; + /** + * Sets a name localization for this command. + * + * @param locale - The locale to set + * @param localizedName - The localized name for the given `locale` + */ + setNameLocalization(locale: LocaleString, localizedName: string | null): this; + /** + * Sets the name localizations for this command. + * + * @param localizedNames - The object of localized names to set + */ + setNameLocalizations(localizedNames: LocalizationMap | null): this; + /** + * Sets a description localization for this command. + * + * @param locale - The locale to set + * @param localizedDescription - The localized description for the given locale + */ + setDescriptionLocalization(locale: LocaleString, localizedDescription: string | null): this; + /** + * Sets the description localizations for this command. + * + * @param localizedDescriptions - The object of localized descriptions to set + */ + setDescriptionLocalizations(localizedDescriptions: LocalizationMap | null): this; +} + +/** + * This mixin holds symbols that can be shared in slashcommands independent of options or subcommands. + */ +declare class SharedSlashCommand { + readonly name: string; + readonly name_localizations?: LocalizationMap; + readonly description: string; + readonly description_localizations?: LocalizationMap; + readonly options: ToAPIApplicationCommandOptions[]; + readonly contexts?: InteractionContextType[]; + /** + * @deprecated Use {@link SharedSlashCommand.setDefaultMemberPermissions} or {@link SharedSlashCommand.setDMPermission} instead. + */ + readonly default_permission: boolean | undefined; + readonly default_member_permissions: Permissions | null | undefined; + /** + * @deprecated Use {@link SharedSlashCommand.contexts} instead. + */ + readonly dm_permission: boolean | undefined; + readonly integration_types?: ApplicationIntegrationType[]; + readonly nsfw: boolean | undefined; + /** + * Sets the contexts of this command. + * + * @param contexts - The contexts + */ + setContexts(...contexts: RestOrArray): this; + /** + * Sets the integration types of this command. + * + * @param integrationTypes - The integration types + */ + setIntegrationTypes(...integrationTypes: RestOrArray): this; + /** + * Sets whether the command is enabled by default when the application is added to a guild. + * + * @remarks + * If set to `false`, you will have to later `PUT` the permissions for this command. + * @param value - Whether or not to enable this command by default + * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} + * @deprecated Use {@link SharedSlashCommand.setDefaultMemberPermissions} or {@link SharedSlashCommand.setDMPermission} instead. + */ + setDefaultPermission(value: boolean): this; + /** + * Sets the default permissions a member should have in order to run the command. + * + * @remarks + * You can set this to `'0'` to disable the command by default. + * @param permissions - The permissions bit field to set + * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} + */ + setDefaultMemberPermissions(permissions: Permissions | bigint | number | null | undefined): this; + /** + * Sets if the command is available in direct messages with the application. + * + * @remarks + * By default, commands are visible. This method is only for global commands. + * @param enabled - Whether the command should be enabled in direct messages + * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} + * @deprecated + * Use {@link SharedSlashCommand.setContexts} instead. + */ + setDMPermission(enabled: boolean | null | undefined): this; + /** + * Sets whether this command is NSFW. + * + * @param nsfw - Whether this command is NSFW + */ + setNSFW(nsfw?: boolean): this; + /** + * Serializes this builder to API-compatible JSON data. + * + * @remarks + * This method runs validations on the data before serializing it. + * As such, it may throw an error if the data is invalid. + */ + toJSON(): RESTPostAPIChatInputApplicationCommandsJSONBody; +} + +/** + * The base application command option builder that contains common symbols for application command builders. + */ +declare abstract class ApplicationCommandOptionBase extends SharedNameAndDescription { + /** + * The type of this option. + */ + abstract readonly type: ApplicationCommandOptionType; + /** + * Whether this option is required. + * + * @defaultValue `false` + */ + readonly required: boolean; + /** + * Sets whether this option is required. + * + * @param required - Whether this option should be required + */ + setRequired(required: boolean): this; + /** + * Serializes this builder to API-compatible JSON data. + * + * @remarks + * This method runs validations on the data before serializing it. + * As such, it may throw an error if the data is invalid. + */ + abstract toJSON(): APIApplicationCommandBasicOption; + /** + * This method runs required validators on this builder. + */ + protected runRequiredValidations(): void; +} + +/** + * A slash command attachment option. + */ +declare class SlashCommandAttachmentOption extends ApplicationCommandOptionBase { + /** + * The type of this option. + */ + readonly type: ApplicationCommandOptionType.Attachment; + /** + * {@inheritDoc ApplicationCommandOptionBase.toJSON} + */ + toJSON(): APIApplicationCommandAttachmentOption; +} + +/** + * A slash command boolean option. + */ +declare class SlashCommandBooleanOption extends ApplicationCommandOptionBase { + /** + * The type of this option. + */ + readonly type: ApplicationCommandOptionType.Boolean; + /** + * {@inheritDoc ApplicationCommandOptionBase.toJSON} + */ + toJSON(): APIApplicationCommandBooleanOption; +} + +/** + * The allowed channel types used for a channel option in a slash command builder. + * + * @privateRemarks This can't be dynamic because const enums are erased at runtime. + * @internal + */ +declare const allowedChannelTypes: readonly [ChannelType.GuildText, ChannelType.GuildVoice, ChannelType.GuildCategory, ChannelType.GuildAnnouncement, ChannelType.AnnouncementThread, ChannelType.PublicThread, ChannelType.PrivateThread, ChannelType.GuildStageVoice, ChannelType.GuildForum, ChannelType.GuildMedia]; +/** + * The type of allowed channel types used for a channel option. + */ +type ApplicationCommandOptionAllowedChannelTypes = (typeof allowedChannelTypes)[number]; +/** + * This mixin holds channel type symbols used for options. + */ +declare class ApplicationCommandOptionChannelTypesMixin { + /** + * The channel types of this option. + */ + readonly channel_types?: ApplicationCommandOptionAllowedChannelTypes[]; + /** + * Adds channel types to this option. + * + * @param channelTypes - The channel types + */ + addChannelTypes(...channelTypes: RestOrArray): this; +} + +/** + * A slash command channel option. + */ +declare class SlashCommandChannelOption extends ApplicationCommandOptionBase { + /** + * The type of this option. + */ + readonly type: ApplicationCommandOptionType.Channel; + /** + * {@inheritDoc ApplicationCommandOptionBase.toJSON} + */ + toJSON(): APIApplicationCommandChannelOption; +} +interface SlashCommandChannelOption extends ApplicationCommandOptionChannelTypesMixin { +} + +/** + * This mixin holds minimum and maximum symbols used for options. + */ +declare abstract class ApplicationCommandNumericOptionMinMaxValueMixin { + /** + * The maximum value of this option. + */ + readonly max_value?: number; + /** + * The minimum value of this option. + */ + readonly min_value?: number; + /** + * Sets the maximum number value of this option. + * + * @param max - The maximum value this option can be + */ + abstract setMaxValue(max: number): this; + /** + * Sets the minimum number value of this option. + * + * @param min - The minimum value this option can be + */ + abstract setMinValue(min: number): this; +} + +/** + * This mixin holds choices and autocomplete symbols used for options. + */ +declare class ApplicationCommandOptionWithAutocompleteMixin { + /** + * Whether this option utilizes autocomplete. + */ + readonly autocomplete?: boolean; + /** + * The type of this option. + * + * @privateRemarks Since this is present and this is a mixin, this is needed. + */ + readonly type: ApplicationCommandOptionType; + /** + * Whether this option uses autocomplete. + * + * @param autocomplete - Whether this option should use autocomplete + */ + setAutocomplete(autocomplete: boolean): this; +} + +/** + * This mixin holds choices and autocomplete symbols used for options. + */ +declare class ApplicationCommandOptionWithChoicesMixin { + /** + * The choices of this option. + */ + readonly choices?: APIApplicationCommandOptionChoice[]; + /** + * The type of this option. + * + * @privateRemarks Since this is present and this is a mixin, this is needed. + */ + readonly type: ApplicationCommandOptionType; + /** + * Adds multiple choices to this option. + * + * @param choices - The choices to add + */ + addChoices(...choices: RestOrArray>): this; + /** + * Sets multiple choices for this option. + * + * @param choices - The choices to set + */ + setChoices>(...choices: RestOrArray): this; +} + +/** + * A slash command integer option. + */ +declare class SlashCommandIntegerOption extends ApplicationCommandOptionBase implements ApplicationCommandNumericOptionMinMaxValueMixin { + /** + * The type of this option. + */ + readonly type: ApplicationCommandOptionType.Integer; + /** + * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMaxValue} + */ + setMaxValue(max: number): this; + /** + * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMinValue} + */ + setMinValue(min: number): this; + /** + * {@inheritDoc ApplicationCommandOptionBase.toJSON} + */ + toJSON(): APIApplicationCommandIntegerOption; +} +interface SlashCommandIntegerOption extends ApplicationCommandNumericOptionMinMaxValueMixin, ApplicationCommandOptionWithChoicesMixin, ApplicationCommandOptionWithAutocompleteMixin { +} + +/** + * A slash command mentionable option. + */ +declare class SlashCommandMentionableOption extends ApplicationCommandOptionBase { + /** + * The type of this option. + */ + readonly type: ApplicationCommandOptionType.Mentionable; + /** + * {@inheritDoc ApplicationCommandOptionBase.toJSON} + */ + toJSON(): APIApplicationCommandMentionableOption; +} + +/** + * A slash command number option. + */ +declare class SlashCommandNumberOption extends ApplicationCommandOptionBase implements ApplicationCommandNumericOptionMinMaxValueMixin { + /** + * The type of this option. + */ + readonly type: ApplicationCommandOptionType.Number; + /** + * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMaxValue} + */ + setMaxValue(max: number): this; + /** + * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMinValue} + */ + setMinValue(min: number): this; + /** + * {@inheritDoc ApplicationCommandOptionBase.toJSON} + */ + toJSON(): APIApplicationCommandNumberOption; +} +interface SlashCommandNumberOption extends ApplicationCommandNumericOptionMinMaxValueMixin, ApplicationCommandOptionWithChoicesMixin, ApplicationCommandOptionWithAutocompleteMixin { +} + +/** + * A slash command role option. + */ +declare class SlashCommandRoleOption extends ApplicationCommandOptionBase { + /** + * The type of this option. + */ + readonly type: ApplicationCommandOptionType.Role; + /** + * {@inheritDoc ApplicationCommandOptionBase.toJSON} + */ + toJSON(): APIApplicationCommandRoleOption; +} + +/** + * A slash command string option. + */ +declare class SlashCommandStringOption extends ApplicationCommandOptionBase { + /** + * The type of this option. + */ + readonly type: ApplicationCommandOptionType.String; + /** + * The maximum length of this option. + */ + readonly max_length?: number; + /** + * The minimum length of this option. + */ + readonly min_length?: number; + /** + * Sets the maximum length of this string option. + * + * @param max - The maximum length this option can be + */ + setMaxLength(max: number): this; + /** + * Sets the minimum length of this string option. + * + * @param min - The minimum length this option can be + */ + setMinLength(min: number): this; + /** + * {@inheritDoc ApplicationCommandOptionBase.toJSON} + */ + toJSON(): APIApplicationCommandStringOption; +} +interface SlashCommandStringOption extends ApplicationCommandOptionWithChoicesMixin, ApplicationCommandOptionWithAutocompleteMixin { +} + +/** + * A slash command user option. + */ +declare class SlashCommandUserOption extends ApplicationCommandOptionBase { + /** + * The type of this option. + */ + readonly type: ApplicationCommandOptionType.User; + /** + * {@inheritDoc ApplicationCommandOptionBase.toJSON} + */ + toJSON(): APIApplicationCommandUserOption; +} + +/** + * This mixin holds symbols that can be shared in slash command options. + * + * @typeParam TypeAfterAddingOptions - The type this class should return after adding an option. + */ +declare class SharedSlashCommandOptions> { + readonly options: ToAPIApplicationCommandOptions[]; + /** + * Adds a boolean option. + * + * @param input - A function that returns an option builder or an already built builder + */ + addBooleanOption(input: SlashCommandBooleanOption | ((builder: SlashCommandBooleanOption) => SlashCommandBooleanOption)): TypeAfterAddingOptions; + /** + * Adds a user option. + * + * @param input - A function that returns an option builder or an already built builder + */ + addUserOption(input: SlashCommandUserOption | ((builder: SlashCommandUserOption) => SlashCommandUserOption)): TypeAfterAddingOptions; + /** + * Adds a channel option. + * + * @param input - A function that returns an option builder or an already built builder + */ + addChannelOption(input: SlashCommandChannelOption | ((builder: SlashCommandChannelOption) => SlashCommandChannelOption)): TypeAfterAddingOptions; + /** + * Adds a role option. + * + * @param input - A function that returns an option builder or an already built builder + */ + addRoleOption(input: SlashCommandRoleOption | ((builder: SlashCommandRoleOption) => SlashCommandRoleOption)): TypeAfterAddingOptions; + /** + * Adds an attachment option. + * + * @param input - A function that returns an option builder or an already built builder + */ + addAttachmentOption(input: SlashCommandAttachmentOption | ((builder: SlashCommandAttachmentOption) => SlashCommandAttachmentOption)): TypeAfterAddingOptions; + /** + * Adds a mentionable option. + * + * @param input - A function that returns an option builder or an already built builder + */ + addMentionableOption(input: SlashCommandMentionableOption | ((builder: SlashCommandMentionableOption) => SlashCommandMentionableOption)): TypeAfterAddingOptions; + /** + * Adds a string option. + * + * @param input - A function that returns an option builder or an already built builder + */ + addStringOption(input: SlashCommandStringOption | ((builder: SlashCommandStringOption) => SlashCommandStringOption)): TypeAfterAddingOptions; + /** + * Adds an integer option. + * + * @param input - A function that returns an option builder or an already built builder + */ + addIntegerOption(input: SlashCommandIntegerOption | ((builder: SlashCommandIntegerOption) => SlashCommandIntegerOption)): TypeAfterAddingOptions; + /** + * Adds a number option. + * + * @param input - A function that returns an option builder or an already built builder + */ + addNumberOption(input: SlashCommandNumberOption | ((builder: SlashCommandNumberOption) => SlashCommandNumberOption)): TypeAfterAddingOptions; + /** + * Where the actual adding magic happens. ✨ + * + * @param input - The input. What else? + * @param Instance - The instance of whatever is being added + * @internal + */ + private _sharedAddOptionMethod; +} + +/** + * Represents a folder for subcommands. + * + * @see {@link https://discord.com/developers/docs/interactions/application-commands#subcommands-and-subcommand-groups} + */ +declare class SlashCommandSubcommandGroupBuilder implements ToAPIApplicationCommandOptions { + /** + * The name of this subcommand group. + */ + readonly name: string; + /** + * The description of this subcommand group. + */ + readonly description: string; + /** + * The subcommands within this subcommand group. + */ + readonly options: SlashCommandSubcommandBuilder[]; + /** + * Adds a new subcommand to this group. + * + * @param input - A function that returns a subcommand builder or an already built builder + */ + addSubcommand(input: SlashCommandSubcommandBuilder | ((subcommandGroup: SlashCommandSubcommandBuilder) => SlashCommandSubcommandBuilder)): this; + /** + * Serializes this builder to API-compatible JSON data. + * + * @remarks + * This method runs validations on the data before serializing it. + * As such, it may throw an error if the data is invalid. + */ + toJSON(): APIApplicationCommandSubcommandGroupOption; +} +interface SlashCommandSubcommandGroupBuilder extends SharedNameAndDescription { +} +/** + * A builder that creates API-compatible JSON data for slash command subcommands. + * + * @see {@link https://discord.com/developers/docs/interactions/application-commands#subcommands-and-subcommand-groups} + */ +declare class SlashCommandSubcommandBuilder implements ToAPIApplicationCommandOptions { + /** + * The name of this subcommand. + */ + readonly name: string; + /** + * The description of this subcommand. + */ + readonly description: string; + /** + * The options within this subcommand. + */ + readonly options: ApplicationCommandOptionBase[]; + /** + * Serializes this builder to API-compatible JSON data. + * + * @remarks + * This method runs validations on the data before serializing it. + * As such, it may throw an error if the data is invalid. + */ + toJSON(): APIApplicationCommandSubcommandOption; +} +interface SlashCommandSubcommandBuilder extends SharedNameAndDescription, SharedSlashCommandOptions { +} + +/** + * This mixin holds symbols that can be shared in slash subcommands. + * + * @typeParam TypeAfterAddingSubcommands - The type this class should return after adding a subcommand or subcommand group. + */ +declare class SharedSlashCommandSubcommands> { + readonly options: ToAPIApplicationCommandOptions[]; + /** + * Adds a new subcommand group to this command. + * + * @param input - A function that returns a subcommand group builder or an already built builder + */ + addSubcommandGroup(input: SlashCommandSubcommandGroupBuilder | ((subcommandGroup: SlashCommandSubcommandGroupBuilder) => SlashCommandSubcommandGroupBuilder)): TypeAfterAddingSubcommands; + /** + * Adds a new subcommand to this command. + * + * @param input - A function that returns a subcommand builder or an already built builder + */ + addSubcommand(input: SlashCommandSubcommandBuilder | ((subcommandGroup: SlashCommandSubcommandBuilder) => SlashCommandSubcommandBuilder)): TypeAfterAddingSubcommands; +} + +/** + * A builder that creates API-compatible JSON data for slash commands. + */ +declare class SlashCommandBuilder { + /** + * The name of this command. + */ + readonly name: string; + /** + * The name localizations of this command. + */ + readonly name_localizations?: LocalizationMap; + /** + * The description of this command. + */ + readonly description: string; + /** + * The description localizations of this command. + */ + readonly description_localizations?: LocalizationMap; + /** + * The options of this command. + */ + readonly options: ToAPIApplicationCommandOptions[]; + /** + * The contexts for this command. + */ + readonly contexts?: InteractionContextType[]; + /** + * Whether this command is enabled by default when the application is added to a guild. + * + * @deprecated Use {@link SharedSlashCommand.setDefaultMemberPermissions} or {@link SharedSlashCommand.setDMPermission} instead. + */ + readonly default_permission: boolean | undefined; + /** + * The set of permissions represented as a bit set for the command. + */ + readonly default_member_permissions: Permissions | null | undefined; + /** + * Indicates whether the command is available in direct messages with the application. + * + * @remarks + * By default, commands are visible. This property is only for global commands. + * @deprecated + * Use {@link SlashCommandBuilder.contexts} instead. + */ + readonly dm_permission: boolean | undefined; + /** + * The integration types for this command. + */ + readonly integration_types?: ApplicationIntegrationType[]; + /** + * Whether this command is NSFW. + */ + readonly nsfw: boolean | undefined; +} +interface SlashCommandBuilder extends SharedNameAndDescription, SharedSlashCommandOptions, SharedSlashCommandSubcommands, SharedSlashCommand { +} +/** + * An interface specifically for slash command subcommands. + */ +interface SlashCommandSubcommandsOnlyBuilder extends SharedNameAndDescription, SharedSlashCommandSubcommands, SharedSlashCommand { +} +/** + * An interface specifically for slash command options. + */ +interface SlashCommandOptionsOnlyBuilder extends SharedNameAndDescription, SharedSlashCommandOptions, SharedSlashCommand { +} +/** + * An interface that ensures the `toJSON()` call will return something + * that can be serialized into API-compatible data. + */ +interface ToAPIApplicationCommandOptions { + toJSON(): APIApplicationCommandOption; +} + +declare function validateName$1(name: unknown): asserts name is string; +declare function validateDescription(description: unknown): asserts description is string; +declare function validateLocale(locale: unknown): Locale; +declare function validateMaxOptionsLength(options: unknown): asserts options is ToAPIApplicationCommandOptions[]; +declare function validateRequiredParameters$1(name: string, description: string, options: ToAPIApplicationCommandOptions[]): void; +declare function validateDefaultPermission$1(value: unknown): asserts value is boolean; +declare function validateRequired(required: unknown): asserts required is boolean; +declare function validateChoicesLength(amountAdding: number, choices?: APIApplicationCommandOptionChoice[]): void; +declare function assertReturnOfBuilder(input: unknown, ExpectedInstanceOf: new () => ReturnType): asserts input is ReturnType; +declare const localizationMapPredicate: _sapphire_shapeshift.UnionValidator<_sapphire_shapeshift.UndefinedToOptional>> | null | undefined>; +declare function validateLocalizationMap(value: unknown): asserts value is LocalizationMap; +declare function validateDMPermission$1(value: unknown): asserts value is boolean | null | undefined; +declare function validateDefaultMemberPermissions$1(permissions: unknown): string | null | undefined; +declare function validateNSFW(value: unknown): asserts value is boolean; +declare const contextsPredicate$1: _sapphire_shapeshift.ArrayValidator; +declare const integrationTypesPredicate$1: _sapphire_shapeshift.ArrayValidator; + +declare const Assertions$1_assertReturnOfBuilder: typeof assertReturnOfBuilder; +declare const Assertions$1_localizationMapPredicate: typeof localizationMapPredicate; +declare const Assertions$1_validateChoicesLength: typeof validateChoicesLength; +declare const Assertions$1_validateDescription: typeof validateDescription; +declare const Assertions$1_validateLocale: typeof validateLocale; +declare const Assertions$1_validateLocalizationMap: typeof validateLocalizationMap; +declare const Assertions$1_validateMaxOptionsLength: typeof validateMaxOptionsLength; +declare const Assertions$1_validateNSFW: typeof validateNSFW; +declare const Assertions$1_validateRequired: typeof validateRequired; +declare namespace Assertions$1 { + export { Assertions$1_assertReturnOfBuilder as assertReturnOfBuilder, contextsPredicate$1 as contextsPredicate, integrationTypesPredicate$1 as integrationTypesPredicate, Assertions$1_localizationMapPredicate as localizationMapPredicate, Assertions$1_validateChoicesLength as validateChoicesLength, validateDMPermission$1 as validateDMPermission, validateDefaultMemberPermissions$1 as validateDefaultMemberPermissions, validateDefaultPermission$1 as validateDefaultPermission, Assertions$1_validateDescription as validateDescription, Assertions$1_validateLocale as validateLocale, Assertions$1_validateLocalizationMap as validateLocalizationMap, Assertions$1_validateMaxOptionsLength as validateMaxOptionsLength, Assertions$1_validateNSFW as validateNSFW, validateName$1 as validateName, Assertions$1_validateRequired as validateRequired, validateRequiredParameters$1 as validateRequiredParameters }; +} + +/** + * The type a context menu command can be. + */ +type ContextMenuCommandType = ApplicationCommandType.Message | ApplicationCommandType.User; +/** + * A builder that creates API-compatible JSON data for context menu commands. + */ +declare class ContextMenuCommandBuilder { + /** + * The name of this command. + */ + readonly name: string; + /** + * The name localizations of this command. + */ + readonly name_localizations?: LocalizationMap; + /** + * The type of this command. + */ + readonly type: ContextMenuCommandType; + /** + * The contexts for this command. + */ + readonly contexts?: InteractionContextType[]; + /** + * Whether this command is enabled by default when the application is added to a guild. + * + * @deprecated Use {@link ContextMenuCommandBuilder.setDefaultMemberPermissions} or {@link ContextMenuCommandBuilder.setDMPermission} instead. + */ + readonly default_permission: boolean | undefined; + /** + * The set of permissions represented as a bit set for the command. + */ + readonly default_member_permissions: Permissions | null | undefined; + /** + * Indicates whether the command is available in direct messages with the application. + * + * @remarks + * By default, commands are visible. This property is only for global commands. + * @deprecated + * Use {@link ContextMenuCommandBuilder.contexts} instead. + */ + readonly dm_permission: boolean | undefined; + /** + * The integration types for this command. + */ + readonly integration_types?: ApplicationIntegrationType[]; + /** + * Sets the contexts of this command. + * + * @param contexts - The contexts + */ + setContexts(...contexts: RestOrArray): this; + /** + * Sets integration types of this command. + * + * @param integrationTypes - The integration types + */ + setIntegrationTypes(...integrationTypes: RestOrArray): this; + /** + * Sets the name of this command. + * + * @param name - The name to use + */ + setName(name: string): this; + /** + * Sets the type of this command. + * + * @param type - The type to use + */ + setType(type: ContextMenuCommandType): this; + /** + * Sets whether the command is enabled by default when the application is added to a guild. + * + * @remarks + * If set to `false`, you will have to later `PUT` the permissions for this command. + * @param value - Whether to enable this command by default + * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} + * @deprecated Use {@link ContextMenuCommandBuilder.setDefaultMemberPermissions} or {@link ContextMenuCommandBuilder.setDMPermission} instead. + */ + setDefaultPermission(value: boolean): this; + /** + * Sets the default permissions a member should have in order to run this command. + * + * @remarks + * You can set this to `'0'` to disable the command by default. + * @param permissions - The permissions bit field to set + * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} + */ + setDefaultMemberPermissions(permissions: Permissions | bigint | number | null | undefined): this; + /** + * Sets if the command is available in direct messages with the application. + * + * @remarks + * By default, commands are visible. This method is only for global commands. + * @param enabled - Whether the command should be enabled in direct messages + * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} + * @deprecated Use {@link ContextMenuCommandBuilder.setContexts} instead. + */ + setDMPermission(enabled: boolean | null | undefined): this; + /** + * Sets a name localization for this command. + * + * @param locale - The locale to set + * @param localizedName - The localized name for the given `locale` + */ + setNameLocalization(locale: LocaleString, localizedName: string | null): this; + /** + * Sets the name localizations for this command. + * + * @param localizedNames - The object of localized names to set + */ + setNameLocalizations(localizedNames: LocalizationMap | null): this; + /** + * Serializes this builder to API-compatible JSON data. + * + * @remarks + * This method runs validations on the data before serializing it. + * As such, it may throw an error if the data is invalid. + */ + toJSON(): RESTPostAPIContextMenuApplicationCommandsJSONBody; +} + +declare function validateDefaultPermission(value: unknown): asserts value is boolean; +declare function validateName(name: unknown): asserts name is string; +declare function validateType(type: unknown): asserts type is ContextMenuCommandType; +declare function validateRequiredParameters(name: string, type: number): void; +declare function validateDMPermission(value: unknown): asserts value is boolean | null | undefined; +declare function validateDefaultMemberPermissions(permissions: unknown): string | null | undefined; +declare const contextsPredicate: _sapphire_shapeshift.ArrayValidator; +declare const integrationTypesPredicate: _sapphire_shapeshift.ArrayValidator; + +declare const Assertions_contextsPredicate: typeof contextsPredicate; +declare const Assertions_integrationTypesPredicate: typeof integrationTypesPredicate; +declare const Assertions_validateDMPermission: typeof validateDMPermission; +declare const Assertions_validateDefaultMemberPermissions: typeof validateDefaultMemberPermissions; +declare const Assertions_validateDefaultPermission: typeof validateDefaultPermission; +declare const Assertions_validateName: typeof validateName; +declare const Assertions_validateRequiredParameters: typeof validateRequiredParameters; +declare const Assertions_validateType: typeof validateType; +declare namespace Assertions { + export { Assertions_contextsPredicate as contextsPredicate, Assertions_integrationTypesPredicate as integrationTypesPredicate, Assertions_validateDMPermission as validateDMPermission, Assertions_validateDefaultMemberPermissions as validateDefaultMemberPermissions, Assertions_validateDefaultPermission as validateDefaultPermission, Assertions_validateName as validateName, Assertions_validateRequiredParameters as validateRequiredParameters, Assertions_validateType as validateType }; +} + +/** + * Calculates the length of the embed. + * + * @param data - The embed data to check + */ +declare function embedLength(data: APIEmbed): number; + +/** + * Enables validators. + * + * @returns Whether validation is occurring. + */ +declare function enableValidators(): boolean; +/** + * Disables validators. + * + * @returns Whether validation is occurring. + */ +declare function disableValidators(): boolean; +/** + * Checks whether validation is occurring. + */ +declare function isValidationEnabled(): boolean; + +/** + * The {@link https://github.com/discordjs/discord.js/blob/main/packages/builders#readme | @discordjs/builders} version + * that you are currently using. + * + * @privateRemarks This needs to explicitly be `string` so it is not typed as a "const string" that gets injected by esbuild. + */ +declare const version: string; + +export { ActionRowBuilder, type AnyAPIActionRowComponent, type AnyComponentBuilder, ApplicationCommandNumericOptionMinMaxValueMixin, type ApplicationCommandOptionAllowedChannelTypes, ApplicationCommandOptionBase, ApplicationCommandOptionChannelTypesMixin, ApplicationCommandOptionWithAutocompleteMixin, ApplicationCommandOptionWithChoicesMixin, BaseSelectMenuBuilder, ButtonBuilder, ChannelSelectMenuBuilder, Assertions$2 as CheckboxAssertions, CheckboxBuilder, CheckboxGroupBuilder, CheckboxGroupOptionBuilder, Assertions$9 as ComponentAssertions, ComponentBuilder, Assertions$3 as ComponentsV2Assertions, ContainerBuilder, type ContainerComponentBuilder, Assertions as ContextMenuCommandAssertions, ContextMenuCommandBuilder, type ContextMenuCommandType, Assertions$a as EmbedAssertions, type EmbedAuthorData, type EmbedAuthorOptions, EmbedBuilder, type EmbedFooterData, type EmbedFooterOptions, type EmbedImageData, FileBuilder, Assertions$5 as FileUploadAssertions, FileUploadBuilder, type IconData, Assertions$4 as LabelAssertions, LabelBuilder, type LabelBuilderData, type MappedComponentTypes, MediaGalleryBuilder, MediaGalleryItemBuilder, MentionableSelectMenuBuilder, type MessageActionRowComponentBuilder, type MessageComponentBuilder, type ModalActionRowComponentBuilder, Assertions$7 as ModalAssertions, ModalBuilder, type ModalComponentBuilder, type RGBTuple, RadioGroupBuilder, RadioGroupOptionBuilder, type RestOrArray, RoleSelectMenuBuilder, SectionBuilder, Assertions$6 as SelectMenuAssertions, StringSelectMenuBuilder as SelectMenuBuilder, StringSelectMenuOptionBuilder as SelectMenuOptionBuilder, SeparatorBuilder, SharedNameAndDescription, SharedSlashCommand, SharedSlashCommandOptions, SharedSlashCommandSubcommands, Assertions$1 as SlashCommandAssertions, SlashCommandAttachmentOption, SlashCommandBooleanOption, SlashCommandBuilder, SlashCommandChannelOption, SlashCommandIntegerOption, SlashCommandMentionableOption, SlashCommandNumberOption, type SlashCommandOptionsOnlyBuilder, SlashCommandRoleOption, SlashCommandStringOption, SlashCommandSubcommandBuilder, SlashCommandSubcommandGroupBuilder, type SlashCommandSubcommandsOnlyBuilder, SlashCommandUserOption, StringSelectMenuBuilder, StringSelectMenuOptionBuilder, TextDisplayBuilder, Assertions$8 as TextInputAssertions, TextInputBuilder, ThumbnailBuilder, type ToAPIApplicationCommandOptions, UserSelectMenuBuilder, createComponentBuilder, disableValidators, embedLength, enableValidators, isValidationEnabled, normalizeArray, resolveBuilder, version }; diff --git a/node_modules/@discordjs/builders/dist/index.js b/node_modules/@discordjs/builders/dist/index.js new file mode 100644 index 0000000..07a2e3d --- /dev/null +++ b/node_modules/@discordjs/builders/dist/index.js @@ -0,0 +1,4834 @@ +"use strict"; +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default")); +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); +var __decorateClass = (decorators, target, key, kind) => { + var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target; + for (var i = decorators.length - 1, decorator; i >= 0; i--) + if (decorator = decorators[i]) + result = (kind ? decorator(target, key, result) : decorator(result)) || result; + if (kind && result) __defProp(target, key, result); + return result; +}; + +// src/index.ts +var index_exports = {}; +__export(index_exports, { + ActionRowBuilder: () => ActionRowBuilder, + ApplicationCommandNumericOptionMinMaxValueMixin: () => ApplicationCommandNumericOptionMinMaxValueMixin, + ApplicationCommandOptionBase: () => ApplicationCommandOptionBase, + ApplicationCommandOptionChannelTypesMixin: () => ApplicationCommandOptionChannelTypesMixin, + ApplicationCommandOptionWithAutocompleteMixin: () => ApplicationCommandOptionWithAutocompleteMixin, + ApplicationCommandOptionWithChoicesMixin: () => ApplicationCommandOptionWithChoicesMixin, + BaseSelectMenuBuilder: () => BaseSelectMenuBuilder, + ButtonBuilder: () => ButtonBuilder, + ChannelSelectMenuBuilder: () => ChannelSelectMenuBuilder, + CheckboxAssertions: () => Assertions_exports3, + CheckboxBuilder: () => CheckboxBuilder, + CheckboxGroupBuilder: () => CheckboxGroupBuilder, + CheckboxGroupOptionBuilder: () => CheckboxGroupOptionBuilder, + ComponentAssertions: () => Assertions_exports2, + ComponentBuilder: () => ComponentBuilder, + ComponentsV2Assertions: () => Assertions_exports8, + ContainerBuilder: () => ContainerBuilder, + ContextMenuCommandAssertions: () => Assertions_exports11, + ContextMenuCommandBuilder: () => ContextMenuCommandBuilder, + EmbedAssertions: () => Assertions_exports, + EmbedBuilder: () => EmbedBuilder, + FileBuilder: () => FileBuilder, + FileUploadAssertions: () => Assertions_exports4, + FileUploadBuilder: () => FileUploadBuilder, + LabelAssertions: () => Assertions_exports7, + LabelBuilder: () => LabelBuilder, + MediaGalleryBuilder: () => MediaGalleryBuilder, + MediaGalleryItemBuilder: () => MediaGalleryItemBuilder, + MentionableSelectMenuBuilder: () => MentionableSelectMenuBuilder, + ModalAssertions: () => Assertions_exports9, + ModalBuilder: () => ModalBuilder, + RadioGroupBuilder: () => RadioGroupBuilder, + RadioGroupOptionBuilder: () => RadioGroupOptionBuilder, + RoleSelectMenuBuilder: () => RoleSelectMenuBuilder, + SectionBuilder: () => SectionBuilder, + SelectMenuAssertions: () => Assertions_exports6, + SelectMenuBuilder: () => StringSelectMenuBuilder, + SelectMenuOptionBuilder: () => StringSelectMenuOptionBuilder, + SeparatorBuilder: () => SeparatorBuilder, + SharedNameAndDescription: () => SharedNameAndDescription, + SharedSlashCommand: () => SharedSlashCommand, + SharedSlashCommandOptions: () => SharedSlashCommandOptions, + SharedSlashCommandSubcommands: () => SharedSlashCommandSubcommands, + SlashCommandAssertions: () => Assertions_exports10, + SlashCommandAttachmentOption: () => SlashCommandAttachmentOption, + SlashCommandBooleanOption: () => SlashCommandBooleanOption, + SlashCommandBuilder: () => SlashCommandBuilder, + SlashCommandChannelOption: () => SlashCommandChannelOption, + SlashCommandIntegerOption: () => SlashCommandIntegerOption, + SlashCommandMentionableOption: () => SlashCommandMentionableOption, + SlashCommandNumberOption: () => SlashCommandNumberOption, + SlashCommandRoleOption: () => SlashCommandRoleOption, + SlashCommandStringOption: () => SlashCommandStringOption, + SlashCommandSubcommandBuilder: () => SlashCommandSubcommandBuilder, + SlashCommandSubcommandGroupBuilder: () => SlashCommandSubcommandGroupBuilder, + SlashCommandUserOption: () => SlashCommandUserOption, + StringSelectMenuBuilder: () => StringSelectMenuBuilder, + StringSelectMenuOptionBuilder: () => StringSelectMenuOptionBuilder, + TextDisplayBuilder: () => TextDisplayBuilder, + TextInputAssertions: () => Assertions_exports5, + TextInputBuilder: () => TextInputBuilder, + ThumbnailBuilder: () => ThumbnailBuilder, + UserSelectMenuBuilder: () => UserSelectMenuBuilder, + createComponentBuilder: () => createComponentBuilder, + disableValidators: () => disableValidators, + embedLength: () => embedLength, + enableValidators: () => enableValidators, + isValidationEnabled: () => isValidationEnabled, + normalizeArray: () => normalizeArray, + resolveBuilder: () => resolveBuilder, + version: () => version +}); +module.exports = __toCommonJS(index_exports); + +// src/messages/embed/Assertions.ts +var Assertions_exports = {}; +__export(Assertions_exports, { + RGBPredicate: () => RGBPredicate, + authorNamePredicate: () => authorNamePredicate, + colorPredicate: () => colorPredicate, + descriptionPredicate: () => descriptionPredicate, + embedAuthorPredicate: () => embedAuthorPredicate, + embedFieldPredicate: () => embedFieldPredicate, + embedFieldsArrayPredicate: () => embedFieldsArrayPredicate, + embedFooterPredicate: () => embedFooterPredicate, + fieldInlinePredicate: () => fieldInlinePredicate, + fieldLengthPredicate: () => fieldLengthPredicate, + fieldNamePredicate: () => fieldNamePredicate, + fieldValuePredicate: () => fieldValuePredicate, + footerTextPredicate: () => footerTextPredicate, + imageURLPredicate: () => imageURLPredicate, + timestampPredicate: () => timestampPredicate, + titlePredicate: () => titlePredicate, + urlPredicate: () => urlPredicate, + validateFieldLength: () => validateFieldLength +}); +var import_shapeshift = require("@sapphire/shapeshift"); + +// src/util/validation.ts +var validate = true; +function enableValidators() { + return validate = true; +} +__name(enableValidators, "enableValidators"); +function disableValidators() { + return validate = false; +} +__name(disableValidators, "disableValidators"); +function isValidationEnabled() { + return validate; +} +__name(isValidationEnabled, "isValidationEnabled"); + +// src/messages/embed/Assertions.ts +var fieldNamePredicate = import_shapeshift.s.string().lengthLessThanOrEqual(256).setValidationEnabled(isValidationEnabled); +var fieldValuePredicate = import_shapeshift.s.string().lengthLessThanOrEqual(1024).setValidationEnabled(isValidationEnabled); +var fieldInlinePredicate = import_shapeshift.s.boolean().optional(); +var embedFieldPredicate = import_shapeshift.s.object({ + name: fieldNamePredicate, + value: fieldValuePredicate, + inline: fieldInlinePredicate +}).setValidationEnabled(isValidationEnabled); +var embedFieldsArrayPredicate = embedFieldPredicate.array().setValidationEnabled(isValidationEnabled); +var fieldLengthPredicate = import_shapeshift.s.number().lessThanOrEqual(25).setValidationEnabled(isValidationEnabled); +function validateFieldLength(amountAdding, fields) { + fieldLengthPredicate.parse((fields?.length ?? 0) + amountAdding); +} +__name(validateFieldLength, "validateFieldLength"); +var authorNamePredicate = fieldNamePredicate.lengthGreaterThanOrEqual(1).nullable().setValidationEnabled(isValidationEnabled); +var imageURLPredicate = import_shapeshift.s.string().url({ + allowedProtocols: ["http:", "https:", "attachment:"] +}).nullish().setValidationEnabled(isValidationEnabled); +var urlPredicate = import_shapeshift.s.string().url({ + allowedProtocols: ["http:", "https:"] +}).nullish().setValidationEnabled(isValidationEnabled); +var embedAuthorPredicate = import_shapeshift.s.object({ + name: authorNamePredicate, + iconURL: imageURLPredicate, + url: urlPredicate +}).setValidationEnabled(isValidationEnabled); +var RGBPredicate = import_shapeshift.s.number().int().greaterThanOrEqual(0).lessThanOrEqual(255).setValidationEnabled(isValidationEnabled); +var colorPredicate = import_shapeshift.s.number().int().greaterThanOrEqual(0).lessThanOrEqual(16777215).or(import_shapeshift.s.tuple([RGBPredicate, RGBPredicate, RGBPredicate])).nullable().setValidationEnabled(isValidationEnabled); +var descriptionPredicate = import_shapeshift.s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(4096).nullable().setValidationEnabled(isValidationEnabled); +var footerTextPredicate = import_shapeshift.s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(2048).nullable().setValidationEnabled(isValidationEnabled); +var embedFooterPredicate = import_shapeshift.s.object({ + text: footerTextPredicate, + iconURL: imageURLPredicate +}).setValidationEnabled(isValidationEnabled); +var timestampPredicate = import_shapeshift.s.union([import_shapeshift.s.number(), import_shapeshift.s.date()]).nullable().setValidationEnabled(isValidationEnabled); +var titlePredicate = fieldNamePredicate.lengthGreaterThanOrEqual(1).nullable().setValidationEnabled(isValidationEnabled); + +// src/util/normalizeArray.ts +function normalizeArray(arr) { + if (Array.isArray(arr[0])) return [...arr[0]]; + return arr; +} +__name(normalizeArray, "normalizeArray"); + +// src/messages/embed/Embed.ts +var EmbedBuilder = class { + static { + __name(this, "EmbedBuilder"); + } + /** + * The API data associated with this embed. + */ + data; + /** + * Creates a new embed from API data. + * + * @param data - The API data to create this embed with + */ + constructor(data = {}) { + this.data = { ...data }; + if (data.timestamp) this.data.timestamp = new Date(data.timestamp).toISOString(); + } + /** + * Appends fields to the embed. + * + * @remarks + * This method accepts either an array of fields or a variable number of field parameters. + * The maximum amount of fields that can be added is 25. + * @example + * Using an array: + * ```ts + * const fields: APIEmbedField[] = ...; + * const embed = new EmbedBuilder() + * .addFields(fields); + * ``` + * @example + * Using rest parameters (variadic): + * ```ts + * const embed = new EmbedBuilder() + * .addFields( + * { name: 'Field 1', value: 'Value 1' }, + * { name: 'Field 2', value: 'Value 2' }, + * ); + * ``` + * @param fields - The fields to add + */ + addFields(...fields) { + const normalizedFields = normalizeArray(fields); + validateFieldLength(normalizedFields.length, this.data.fields); + embedFieldsArrayPredicate.parse(normalizedFields); + if (this.data.fields) this.data.fields.push(...normalizedFields); + else this.data.fields = normalizedFields; + return this; + } + /** + * Removes, replaces, or inserts fields for this embed. + * + * @remarks + * This method behaves similarly + * to {@link https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/splice | Array.prototype.splice()}. + * The maximum amount of fields that can be added is 25. + * + * It's useful for modifying and adjusting order of the already-existing fields of an embed. + * @example + * Remove the first field: + * ```ts + * embed.spliceFields(0, 1); + * ``` + * @example + * Remove the first n fields: + * ```ts + * const n = 4; + * embed.spliceFields(0, n); + * ``` + * @example + * Remove the last field: + * ```ts + * embed.spliceFields(-1, 1); + * ``` + * @param index - The index to start at + * @param deleteCount - The number of fields to remove + * @param fields - The replacing field objects + */ + spliceFields(index, deleteCount, ...fields) { + validateFieldLength(fields.length - deleteCount, this.data.fields); + embedFieldsArrayPredicate.parse(fields); + if (this.data.fields) this.data.fields.splice(index, deleteCount, ...fields); + else this.data.fields = fields; + return this; + } + /** + * Sets the fields for this embed. + * + * @remarks + * This method is an alias for {@link EmbedBuilder.spliceFields}. More specifically, + * it splices the entire array of fields, replacing them with the provided fields. + * + * You can set a maximum of 25 fields. + * @param fields - The fields to set + */ + setFields(...fields) { + this.spliceFields(0, this.data.fields?.length ?? 0, ...normalizeArray(fields)); + return this; + } + /** + * Sets the author of this embed. + * + * @param options - The options to use + */ + setAuthor(options) { + if (options === null) { + this.data.author = void 0; + return this; + } + embedAuthorPredicate.parse(options); + this.data.author = { name: options.name, url: options.url, icon_url: options.iconURL }; + return this; + } + /** + * Sets the color of this embed. + * + * @param color - The color to use + */ + setColor(color) { + colorPredicate.parse(color); + if (Array.isArray(color)) { + const [red, green, blue] = color; + this.data.color = (red << 16) + (green << 8) + blue; + return this; + } + this.data.color = color ?? void 0; + return this; + } + /** + * Sets the description of this embed. + * + * @param description - The description to use + */ + setDescription(description) { + descriptionPredicate.parse(description); + this.data.description = description ?? void 0; + return this; + } + /** + * Sets the footer of this embed. + * + * @param options - The footer to use + */ + setFooter(options) { + if (options === null) { + this.data.footer = void 0; + return this; + } + embedFooterPredicate.parse(options); + this.data.footer = { text: options.text, icon_url: options.iconURL }; + return this; + } + /** + * Sets the image of this embed. + * + * @param url - The image URL to use + */ + setImage(url) { + imageURLPredicate.parse(url); + this.data.image = url ? { url } : void 0; + return this; + } + /** + * Sets the thumbnail of this embed. + * + * @param url - The thumbnail URL to use + */ + setThumbnail(url) { + imageURLPredicate.parse(url); + this.data.thumbnail = url ? { url } : void 0; + return this; + } + /** + * Sets the timestamp of this embed. + * + * @param timestamp - The timestamp or date to use + */ + setTimestamp(timestamp = Date.now()) { + timestampPredicate.parse(timestamp); + this.data.timestamp = timestamp ? new Date(timestamp).toISOString() : void 0; + return this; + } + /** + * Sets the title for this embed. + * + * @param title - The title to use + */ + setTitle(title) { + titlePredicate.parse(title); + this.data.title = title ?? void 0; + return this; + } + /** + * Sets the URL of this embed. + * + * @param url - The URL to use + */ + setURL(url) { + urlPredicate.parse(url); + this.data.url = url ?? void 0; + return this; + } + /** + * Serializes this builder to API-compatible JSON data. + * + * @remarks + * This method runs validations on the data before serializing it. + * As such, it may throw an error if the data is invalid. + */ + toJSON() { + return { ...this.data }; + } +}; + +// src/index.ts +__reExport(index_exports, require("@discordjs/formatters"), module.exports); + +// src/components/Assertions.ts +var Assertions_exports2 = {}; +__export(Assertions_exports2, { + buttonLabelValidator: () => buttonLabelValidator, + buttonStyleValidator: () => buttonStyleValidator, + channelTypesValidator: () => channelTypesValidator, + customIdValidator: () => customIdValidator, + defaultValidator: () => defaultValidator, + disabledValidator: () => disabledValidator, + emojiValidator: () => emojiValidator, + idValidator: () => idValidator, + jsonOptionValidator: () => jsonOptionValidator, + labelValueDescriptionValidator: () => labelValueDescriptionValidator, + minMaxValidator: () => minMaxValidator, + optionValidator: () => optionValidator, + optionsLengthValidator: () => optionsLengthValidator, + optionsValidator: () => optionsValidator, + placeholderValidator: () => placeholderValidator, + urlValidator: () => urlValidator, + validateRequiredButtonParameters: () => validateRequiredButtonParameters, + validateRequiredSelectMenuOptionParameters: () => validateRequiredSelectMenuOptionParameters, + validateRequiredSelectMenuParameters: () => validateRequiredSelectMenuParameters +}); +var import_shapeshift2 = require("@sapphire/shapeshift"); +var import_v10 = require("discord-api-types/v10"); + +// src/components/selectMenu/StringSelectMenuOption.ts +var StringSelectMenuOptionBuilder = class { + /** + * Creates a new string select menu option from API data. + * + * @param data - The API data to create this string select menu option with + * @example + * Creating a string select menu option from an API data object: + * ```ts + * const selectMenuOption = new SelectMenuOptionBuilder({ + * label: 'catchy label', + * value: '1', + * }); + * ``` + * @example + * Creating a string select menu option using setters and API data: + * ```ts + * const selectMenuOption = new SelectMenuOptionBuilder({ + * default: true, + * value: '1', + * }) + * .setLabel('woah'); + * ``` + */ + constructor(data = {}) { + this.data = data; + } + static { + __name(this, "StringSelectMenuOptionBuilder"); + } + /** + * Sets the label for this option. + * + * @param label - The label to use + */ + setLabel(label) { + this.data.label = labelValueDescriptionValidator.parse(label); + return this; + } + /** + * Sets the value for this option. + * + * @param value - The value to use + */ + setValue(value) { + this.data.value = labelValueDescriptionValidator.parse(value); + return this; + } + /** + * Sets the description for this option. + * + * @param description - The description to use + */ + setDescription(description) { + this.data.description = labelValueDescriptionValidator.parse(description); + return this; + } + /** + * Sets whether this option is selected by default. + * + * @param isDefault - Whether this option is selected by default + */ + setDefault(isDefault = true) { + this.data.default = defaultValidator.parse(isDefault); + return this; + } + /** + * Sets the emoji to display for this option. + * + * @param emoji - The emoji to use + */ + setEmoji(emoji) { + this.data.emoji = emojiValidator.parse(emoji); + return this; + } + /** + * {@inheritDoc BaseSelectMenuBuilder.toJSON} + */ + toJSON() { + validateRequiredSelectMenuOptionParameters(this.data.label, this.data.value); + return { + ...this.data + }; + } +}; + +// src/components/Assertions.ts +var idValidator = import_shapeshift2.s.number().safeInt().greaterThanOrEqual(1).lessThan(4294967296).setValidationEnabled(isValidationEnabled); +var customIdValidator = import_shapeshift2.s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(100).setValidationEnabled(isValidationEnabled); +var emojiValidator = import_shapeshift2.s.object({ + id: import_shapeshift2.s.string(), + name: import_shapeshift2.s.string(), + animated: import_shapeshift2.s.boolean() +}).partial().strict().setValidationEnabled(isValidationEnabled); +var disabledValidator = import_shapeshift2.s.boolean(); +var buttonLabelValidator = import_shapeshift2.s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(80).setValidationEnabled(isValidationEnabled); +var buttonStyleValidator = import_shapeshift2.s.nativeEnum(import_v10.ButtonStyle); +var placeholderValidator = import_shapeshift2.s.string().lengthLessThanOrEqual(150).setValidationEnabled(isValidationEnabled); +var minMaxValidator = import_shapeshift2.s.number().int().greaterThanOrEqual(0).lessThanOrEqual(25).setValidationEnabled(isValidationEnabled); +var labelValueDescriptionValidator = import_shapeshift2.s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(100).setValidationEnabled(isValidationEnabled); +var jsonOptionValidator = import_shapeshift2.s.object({ + label: labelValueDescriptionValidator, + value: labelValueDescriptionValidator, + description: labelValueDescriptionValidator.optional(), + emoji: emojiValidator.optional(), + default: import_shapeshift2.s.boolean().optional() +}).setValidationEnabled(isValidationEnabled); +var optionValidator = import_shapeshift2.s.instance(StringSelectMenuOptionBuilder).setValidationEnabled(isValidationEnabled); +var optionsValidator = optionValidator.array().lengthGreaterThanOrEqual(0).setValidationEnabled(isValidationEnabled); +var optionsLengthValidator = import_shapeshift2.s.number().int().greaterThanOrEqual(0).lessThanOrEqual(25).setValidationEnabled(isValidationEnabled); +function validateRequiredSelectMenuParameters(options, customId) { + customIdValidator.parse(customId); + optionsValidator.parse(options); +} +__name(validateRequiredSelectMenuParameters, "validateRequiredSelectMenuParameters"); +var defaultValidator = import_shapeshift2.s.boolean(); +function validateRequiredSelectMenuOptionParameters(label, value) { + labelValueDescriptionValidator.parse(label); + labelValueDescriptionValidator.parse(value); +} +__name(validateRequiredSelectMenuOptionParameters, "validateRequiredSelectMenuOptionParameters"); +var channelTypesValidator = import_shapeshift2.s.nativeEnum(import_v10.ChannelType).array().setValidationEnabled(isValidationEnabled); +var urlValidator = import_shapeshift2.s.string().url({ + allowedProtocols: ["http:", "https:", "discord:"] +}).setValidationEnabled(isValidationEnabled); +function validateRequiredButtonParameters(style, label, emoji, customId, skuId, url) { + if (style === import_v10.ButtonStyle.Premium) { + if (!skuId) { + throw new RangeError("Premium buttons must have an SKU id."); + } + if (customId || label || url || emoji) { + throw new RangeError("Premium buttons cannot have a custom id, label, URL, or emoji."); + } + } else { + if (skuId) { + throw new RangeError("Non-premium buttons must not have an SKU id."); + } + if (url && customId) { + throw new RangeError("URL and custom id are mutually exclusive."); + } + if (!label && !emoji) { + throw new RangeError("Non-premium buttons must have a label and/or an emoji."); + } + if (style === import_v10.ButtonStyle.Link) { + if (!url) { + throw new RangeError("Link buttons must have a URL."); + } + } else if (url) { + throw new RangeError("Non-premium and non-link buttons cannot have a URL."); + } + } +} +__name(validateRequiredButtonParameters, "validateRequiredButtonParameters"); + +// src/components/ActionRow.ts +var import_v1028 = require("discord-api-types/v10"); + +// src/components/Component.ts +var ComponentBuilder = class { + static { + __name(this, "ComponentBuilder"); + } + /** + * The API data associated with this component. + */ + data; + /** + * Constructs a new kind of component. + * + * @param data - The data to construct a component out of + */ + constructor(data) { + this.data = data; + } + /** + * Sets the id (not the custom id) for this component. + * + * @param id - The id for this component + */ + setId(id) { + this.data.id = idValidator.parse(id); + return this; + } + /** + * Clears the id of this component, defaulting to a default incremented id. + */ + clearId() { + this.data.id = void 0; + return this; + } +}; + +// src/components/Components.ts +var import_v1027 = require("discord-api-types/v10"); + +// src/components/button/Button.ts +var import_v102 = require("discord-api-types/v10"); +var ButtonBuilder = class extends ComponentBuilder { + static { + __name(this, "ButtonBuilder"); + } + /** + * Creates a new button from API data. + * + * @param data - The API data to create this button with + * @example + * Creating a button from an API data object: + * ```ts + * const button = new ButtonBuilder({ + * custom_id: 'a cool button', + * style: ButtonStyle.Primary, + * label: 'Click Me', + * emoji: { + * name: 'smile', + * id: '123456789012345678', + * }, + * }); + * ``` + * @example + * Creating a button using setters and API data: + * ```ts + * const button = new ButtonBuilder({ + * style: ButtonStyle.Secondary, + * label: 'Click Me', + * }) + * .setEmoji({ name: '🙂' }) + * .setCustomId('another cool button'); + * ``` + */ + constructor(data) { + super({ type: import_v102.ComponentType.Button, ...data }); + } + /** + * Sets the style of this button. + * + * @param style - The style to use + */ + setStyle(style) { + this.data.style = buttonStyleValidator.parse(style); + return this; + } + /** + * Sets the URL for this button. + * + * @remarks + * This method is only available to buttons using the `Link` button style. + * Only three types of URL schemes are currently supported: `https://`, `http://`, and `discord://`. + * @param url - The URL to use + */ + setURL(url) { + this.data.url = urlValidator.parse(url); + return this; + } + /** + * Sets the custom id for this button. + * + * @remarks + * This method is only applicable to buttons that are not using the `Link` button style. + * @param customId - The custom id to use + */ + setCustomId(customId) { + this.data.custom_id = customIdValidator.parse(customId); + return this; + } + /** + * Sets the SKU id that represents a purchasable SKU for this button. + * + * @remarks Only available when using premium-style buttons. + * @param skuId - The SKU id to use + */ + setSKUId(skuId) { + this.data.sku_id = skuId; + return this; + } + /** + * Sets the emoji to display on this button. + * + * @param emoji - The emoji to use + */ + setEmoji(emoji) { + this.data.emoji = emojiValidator.parse(emoji); + return this; + } + /** + * Sets whether this button is disabled. + * + * @param disabled - Whether to disable this button + */ + setDisabled(disabled = true) { + this.data.disabled = disabledValidator.parse(disabled); + return this; + } + /** + * Sets the label for this button. + * + * @param label - The label to use + */ + setLabel(label) { + this.data.label = buttonLabelValidator.parse(label); + return this; + } + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON() { + validateRequiredButtonParameters( + this.data.style, + this.data.label, + this.data.emoji, + this.data.custom_id, + this.data.sku_id, + this.data.url + ); + return { + ...this.data + }; + } +}; + +// src/components/checkbox/Checkbox.ts +var import_v104 = require("discord-api-types/v10"); + +// src/components/checkbox/Assertions.ts +var Assertions_exports3 = {}; +__export(Assertions_exports3, { + checkboxGroupOptionPredicate: () => checkboxGroupOptionPredicate, + checkboxGroupPredicate: () => checkboxGroupPredicate, + checkboxPredicate: () => checkboxPredicate, + radioGroupOptionPredicate: () => radioGroupOptionPredicate, + radioGroupPredicate: () => radioGroupPredicate +}); +var import_shapeshift3 = require("@sapphire/shapeshift"); +var import_v103 = require("discord-api-types/v10"); +var checkboxPredicate = import_shapeshift3.s.object({ + type: import_shapeshift3.s.literal(import_v103.ComponentType.Checkbox), + custom_id: customIdValidator, + id: idValidator.optional(), + default: import_shapeshift3.s.boolean().optional() +}).setValidationEnabled(isValidationEnabled); +var checkboxGroupOptionPredicate = import_shapeshift3.s.object({ + label: import_shapeshift3.s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(100), + value: import_shapeshift3.s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(100), + description: import_shapeshift3.s.string().lengthLessThanOrEqual(100).optional(), + default: import_shapeshift3.s.boolean().optional() +}).setValidationEnabled(isValidationEnabled); +var checkboxGroupPredicate = import_shapeshift3.s.object({ + type: import_shapeshift3.s.literal(import_v103.ComponentType.CheckboxGroup), + custom_id: customIdValidator, + id: idValidator.optional(), + options: import_shapeshift3.s.array(checkboxGroupOptionPredicate).lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(10), + min_values: import_shapeshift3.s.number().int().greaterThanOrEqual(0).lessThanOrEqual(10).optional(), + max_values: import_shapeshift3.s.number().int().greaterThanOrEqual(1).lessThanOrEqual(10).optional(), + required: import_shapeshift3.s.boolean().optional() +}).reshape((data) => { + if (data.min_values !== void 0 && data.max_values !== void 0 && data.min_values > data.max_values) { + return import_shapeshift3.Result.err(new RangeError("min_values cannot be greater than max_values")); + } + if (data.max_values !== void 0 && data.max_values > data.options.length) { + return import_shapeshift3.Result.err(new RangeError("max_values cannot be greater than the number of options")); + } + if (data.min_values !== void 0 && data.min_values > data.options.length) { + return import_shapeshift3.Result.err(new RangeError("min_values cannot be greater than the number of options")); + } + if (data.required === true && data.min_values === 0) { + return import_shapeshift3.Result.err(new RangeError("If required is true, min_values must be at least 1")); + } + const defaultCount = data.options.filter((option) => option.default === true).length; + if (data.max_values !== void 0 && defaultCount > data.max_values) { + return import_shapeshift3.Result.err(new RangeError("The number of default options cannot be greater than max_values")); + } + const values = data.options.map((option) => option.value); + const uniqueValues = new Set(values); + if (uniqueValues.size !== values.length) { + return import_shapeshift3.Result.err(new RangeError("Each option in a checkbox group must have a unique value")); + } + return import_shapeshift3.Result.ok(data); +}).setValidationEnabled(isValidationEnabled); +var radioGroupOptionPredicate = checkboxGroupOptionPredicate; +var radioGroupPredicate = import_shapeshift3.s.object({ + type: import_shapeshift3.s.literal(import_v103.ComponentType.RadioGroup), + custom_id: customIdValidator, + id: idValidator.optional(), + options: import_shapeshift3.s.array(radioGroupOptionPredicate).lengthGreaterThanOrEqual(2).lengthLessThanOrEqual(10), + required: import_shapeshift3.s.boolean().optional() +}).reshape((data) => { + const defaultCount = data.options.filter((option) => option.default === true).length; + if (defaultCount > 1) { + return import_shapeshift3.Result.err(new RangeError("There can be at most one default option in a radio group")); + } + const values = data.options.map((option) => option.value); + const uniqueValues = new Set(values); + if (uniqueValues.size !== values.length) { + return import_shapeshift3.Result.err(new RangeError("Each option in a radio group must have a unique value")); + } + return import_shapeshift3.Result.ok(data); +}).setValidationEnabled(isValidationEnabled); + +// src/components/checkbox/Checkbox.ts +var CheckboxBuilder = class extends ComponentBuilder { + static { + __name(this, "CheckboxBuilder"); + } + /** + * Creates a new checkbox from API data. + * + * @param data - The API data to create this checkbox with + * @example + * Creating a checkbox from an API data object: + * ```ts + * const checkbox = new CheckboxBuilder({ + * custom_id: 'accept_terms', + * default: false, + * }); + * ``` + * @example + * Creating a checkbox using setters and API data: + * ```ts + * const checkbox = new CheckboxBuilder() + * .setCustomId('subscribe_newsletter') + * .setDefault(true); + * ``` + */ + constructor(data) { + super({ type: import_v104.ComponentType.Checkbox, ...data }); + } + /** + * Sets the custom id of this checkbox. + * + * @param customId - The custom id to use + */ + setCustomId(customId) { + this.data.custom_id = customId; + return this; + } + /** + * Sets whether this checkbox is checked by default. + * + * @param isDefault - Whether the checkbox should be checked by default + */ + setDefault(isDefault) { + this.data.default = isDefault; + return this; + } + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON() { + checkboxPredicate.parse(this.data); + return { + ...this.data + }; + } +}; + +// src/components/checkbox/CheckboxGroup.ts +var import_v105 = require("discord-api-types/v10"); + +// src/components/checkbox/CheckboxGroupOption.ts +var CheckboxGroupOptionBuilder = class { + /** + * Creates a new checkbox group option from API data. + * + * @param data - The API data to create this checkbox group option with + * @example + * Creating a checkbox group option from an API data object: + * ```ts + * const option = new CheckboxGroupOptionBuilder({ + * label: 'Option 1', + * value: 'option_1', + * }); + * ``` + * @example + * Creating a checkbox group option using setters and API data: + * ```ts + * const option = new CheckboxGroupOptionBuilder() + * .setLabel('Option 2') + * .setValue('option_2'); + * ``` + */ + constructor(data = {}) { + this.data = data; + } + static { + __name(this, "CheckboxGroupOptionBuilder"); + } + /** + * Sets the label for this option. + * + * @param label - The label to use + */ + setLabel(label) { + this.data.label = label; + return this; + } + /** + * Sets the value for this option. + * + * @param value - The value to use + */ + setValue(value) { + this.data.value = value; + return this; + } + /** + * Sets the description for this option. + * + * @param description - The description to use + */ + setDescription(description) { + this.data.description = description; + return this; + } + /** + * Sets whether this option is selected by default. + * + * @param isDefault - Whether the option should be selected by default + */ + setDefault(isDefault) { + this.data.default = isDefault; + return this; + } + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON() { + checkboxGroupOptionPredicate.parse(this.data); + return { + ...this.data + }; + } +}; + +// src/components/checkbox/CheckboxGroup.ts +var CheckboxGroupBuilder = class extends ComponentBuilder { + static { + __name(this, "CheckboxGroupBuilder"); + } + /** + * The options within this checkbox group. + */ + options; + /** + * Creates a new checkbox group from API data. + * + * @param data - The API data to create this checkbox group with + * @example + * Creating a checkbox group from an API data object: + * ```ts + * const checkboxGroup = new CheckboxGroupBuilder({ + * custom_id: 'select_options', + * options: [ + * { label: 'Option 1', value: 'option_1' }, + * { label: 'Option 2', value: 'option_2' }, + * ], + * }); + * ``` + * @example + * Creating a checkbox group using setters and API data: + * ```ts + * const checkboxGroup = new CheckboxGroupBuilder() + * .setCustomId('choose_items') + * .setOptions([ + * { label: 'Item A', value: 'item_a' }, + * { label: 'Item B', value: 'item_b' }, + * ]) + * .setMinValues(1) + * .setMaxValues(2); + * ``` + */ + constructor(data) { + const { options, ...initData } = data ?? {}; + super({ ...initData, type: import_v105.ComponentType.CheckboxGroup }); + this.options = options?.map((option) => new CheckboxGroupOptionBuilder(option)) ?? []; + } + /** + * Sets the custom id of this checkbox group. + * + * @param customId - The custom id to use + */ + setCustomId(customId) { + this.data.custom_id = customId; + return this; + } + /** + * Adds options to this checkbox group. + * + * @param options - The options to add + */ + addOptions(...options) { + const normalizedOptions = normalizeArray(options); + this.options.push( + ...normalizedOptions.map((normalizedOption) => { + const json = "toJSON" in normalizedOption ? normalizedOption.toJSON() : normalizedOption; + const option = new CheckboxGroupOptionBuilder(json); + checkboxGroupOptionPredicate.parse(option.toJSON()); + return option; + }) + ); + return this; + } + /** + * Sets the options for this checkbox group. + * + * @param options - The options to use + */ + setOptions(...options) { + return this.spliceOptions(0, this.options.length, ...options); + } + /** + * Removes, replaces, or inserts options for this checkbox group. + * + * @remarks + * This method behaves similarly + * to {@link https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/splice | Array.prototype.splice()}. + * It's useful for modifying and adjusting the order of existing options. + * @param index - The index to start at + * @param deleteCount - The number of options to remove + * @param options - The replacing option objects or builders + */ + spliceOptions(index, deleteCount, ...options) { + const normalizedOptions = normalizeArray(options); + const clone = [...this.options]; + clone.splice( + index, + deleteCount, + ...normalizedOptions.map((normalizedOption) => { + const json = "toJSON" in normalizedOption ? normalizedOption.toJSON() : normalizedOption; + const option = new CheckboxGroupOptionBuilder(json); + checkboxGroupOptionPredicate.parse(option.toJSON()); + return option; + }) + ); + this.options.splice(0, this.options.length, ...clone); + return this; + } + /** + * Sets the minimum number of options that must be selected. + * + * @param minValues - The minimum number of options that must be selected + */ + setMinValues(minValues) { + this.data.min_values = minValues; + return this; + } + /** + * Sets the maximum number of options that can be selected. + * + * @param maxValues - The maximum number of options that can be selected + */ + setMaxValues(maxValues) { + this.data.max_values = maxValues; + return this; + } + /** + * Sets whether selecting options is required. + * + * @param required - Whether selecting options is required + */ + setRequired(required) { + this.data.required = required; + return this; + } + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON() { + const data = { + ...this.data, + options: this.options.map((option) => option.toJSON()) + }; + checkboxGroupPredicate.parse(data); + return data; + } +}; + +// src/components/checkbox/RadioGroup.ts +var import_v106 = require("discord-api-types/v10"); + +// src/components/checkbox/RadioGroupOption.ts +var RadioGroupOptionBuilder = class { + /** + * Creates a new radio group option from API data. + * + * @param data - The API data to create this radio group option with + * @example + * Creating a radio group option from an API data object: + * ```ts + * const option = new RadioGroupOptionBuilder({ + * label: 'Option 1', + * value: 'option_1', + * }); + * ``` + * @example + * Creating a radio group option using setters and API data: + * ```ts + * const option = new RadioGroupOptionBuilder() + * .setLabel('Option 2') + * .setValue('option_2'); + * ``` + */ + constructor(data = {}) { + this.data = data; + } + static { + __name(this, "RadioGroupOptionBuilder"); + } + /** + * Sets the label for this option. + * + * @param label - The label to use + */ + setLabel(label) { + this.data.label = label; + return this; + } + /** + * Sets the value for this option. + * + * @param value - The value to use + */ + setValue(value) { + this.data.value = value; + return this; + } + /** + * Sets the description for this option. + * + * @param description - The description to use + */ + setDescription(description) { + this.data.description = description; + return this; + } + /** + * Sets whether this option is selected by default. + * + * @param isDefault - Whether the option should be selected by default + */ + setDefault(isDefault) { + this.data.default = isDefault; + return this; + } + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON() { + radioGroupOptionPredicate.parse(this.data); + return { + ...this.data + }; + } +}; + +// src/components/checkbox/RadioGroup.ts +var RadioGroupBuilder = class extends ComponentBuilder { + static { + __name(this, "RadioGroupBuilder"); + } + /** + * The options within this radio group. + */ + options; + /** + * Creates a new radio group from API data. + * + * @param data - The API data to create this radio group with + * @example + * Creating a radio group from an API data object: + * ```ts + * const radioGroup = new RadioGroupBuilder({ + * custom_id: 'select_options', + * options: [ + * { label: 'Option 1', value: 'option_1' }, + * { label: 'Option 2', value: 'option_2' }, + * ], + * }); + * ``` + * @example + * Creating a radio group using setters and API data: + * ```ts + * const radioGroup = new RadioGroupBuilder() + * .setCustomId('choose_items') + * .setOptions([ + * { label: 'Item A', value: 'item_a' }, + * { label: 'Item B', value: 'item_b' }, + * ]) + * ``` + */ + constructor(data) { + const { options, ...initData } = data ?? {}; + super({ ...initData, type: import_v106.ComponentType.RadioGroup }); + this.options = options?.map((option) => new RadioGroupOptionBuilder(option)) ?? []; + } + /** + * Sets the custom id of this radio group. + * + * @param customId - The custom id to use + */ + setCustomId(customId) { + this.data.custom_id = customId; + return this; + } + /** + * Adds options to this radio group. + * + * @param options - The options to add + */ + addOptions(...options) { + const normalizedOptions = normalizeArray(options); + this.options.push( + ...normalizedOptions.map((normalizedOption) => { + const json = "toJSON" in normalizedOption ? normalizedOption.toJSON() : normalizedOption; + const option = new RadioGroupOptionBuilder(json); + radioGroupOptionPredicate.parse(option.toJSON()); + return option; + }) + ); + return this; + } + /** + * Sets the options for this radio group. + * + * @param options - The options to use + */ + setOptions(...options) { + return this.spliceOptions(0, this.options.length, ...options); + } + /** + * Removes, replaces, or inserts options for this radio group. + * + * @remarks + * This method behaves similarly + * to {@link https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/splice | Array.prototype.splice()}. + * It's useful for modifying and adjusting the order of existing options. + * @param index - The index to start at + * @param deleteCount - The number of options to remove + * @param options - The replacing option objects or builders + */ + spliceOptions(index, deleteCount, ...options) { + const normalizedOptions = normalizeArray(options); + const clone = [...this.options]; + clone.splice( + index, + deleteCount, + ...normalizedOptions.map((normalizedOption) => { + const json = "toJSON" in normalizedOption ? normalizedOption.toJSON() : normalizedOption; + const option = new RadioGroupOptionBuilder(json); + radioGroupOptionPredicate.parse(option.toJSON()); + return option; + }) + ); + this.options.splice(0, this.options.length, ...clone); + return this; + } + /** + * Sets whether selecting options is required. + * + * @param required - Whether selecting options is required + */ + setRequired(required) { + this.data.required = required; + return this; + } + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON() { + const data = { + ...this.data, + options: this.options.map((option) => option.toJSON()) + }; + radioGroupPredicate.parse(data); + return data; + } +}; + +// src/components/fileUpload/FileUpload.ts +var import_v108 = require("discord-api-types/v10"); + +// src/components/fileUpload/Assertions.ts +var Assertions_exports4 = {}; +__export(Assertions_exports4, { + fileUploadPredicate: () => fileUploadPredicate +}); +var import_shapeshift4 = require("@sapphire/shapeshift"); +var import_v107 = require("discord-api-types/v10"); +var fileUploadPredicate = import_shapeshift4.s.object({ + type: import_shapeshift4.s.literal(import_v107.ComponentType.FileUpload), + id: idValidator.optional(), + custom_id: customIdValidator, + min_values: import_shapeshift4.s.number().greaterThanOrEqual(0).lessThanOrEqual(10).optional(), + max_values: import_shapeshift4.s.number().greaterThanOrEqual(1).lessThanOrEqual(10).optional(), + required: import_shapeshift4.s.boolean().optional() +}); + +// src/components/fileUpload/FileUpload.ts +var FileUploadBuilder = class extends ComponentBuilder { + static { + __name(this, "FileUploadBuilder"); + } + /** + * Creates a new file upload. + * + * @param data - The API data to create this file upload with + * @example + * Creating a file upload from an API data object: + * ```ts + * const fileUpload = new FileUploadBuilder({ + * custom_id: "file_upload", + * min_values: 2, + * max_values: 5, + * }); + * ``` + * @example + * Creating a file upload using setters and API data: + * ```ts + * const fileUpload = new FileUploadBuilder({ + * custom_id: "file_upload", + * min_values: 2, + * max_values: 5, + * }).setRequired(); + * ``` + */ + constructor(data = {}) { + super({ type: import_v108.ComponentType.FileUpload, ...data }); + } + /** + * Sets the custom id for this file upload. + * + * @param customId - The custom id to use + */ + setCustomId(customId) { + this.data.custom_id = customId; + return this; + } + /** + * Sets the minimum number of file uploads required. + * + * @param minValues - The minimum values that must be uploaded + */ + setMinValues(minValues) { + this.data.min_values = minValues; + return this; + } + /** + * Clears the minimum values. + */ + clearMinValues() { + this.data.min_values = void 0; + return this; + } + /** + * Sets the maximum number of file uploads required. + * + * @param maxValues - The maximum values that can be uploaded + */ + setMaxValues(maxValues) { + this.data.max_values = maxValues; + return this; + } + /** + * Clears the maximum values. + */ + clearMaxValues() { + this.data.max_values = void 0; + return this; + } + /** + * Sets whether this file upload is required. + * + * @param required - Whether this file upload is required + */ + setRequired(required = true) { + this.data.required = required; + return this; + } + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON() { + fileUploadPredicate.parse(this.data); + return this.data; + } +}; + +// src/components/label/Label.ts +var import_v1018 = require("discord-api-types/v10"); + +// src/components/selectMenu/ChannelSelectMenu.ts +var import_v1010 = require("discord-api-types/v10"); + +// src/components/textInput/Assertions.ts +var Assertions_exports5 = {}; +__export(Assertions_exports5, { + labelValidator: () => labelValidator, + maxLengthValidator: () => maxLengthValidator, + minLengthValidator: () => minLengthValidator, + placeholderValidator: () => placeholderValidator2, + requiredValidator: () => requiredValidator, + textInputPredicate: () => textInputPredicate, + textInputStyleValidator: () => textInputStyleValidator, + validateRequiredParameters: () => validateRequiredParameters, + valueValidator: () => valueValidator +}); +var import_shapeshift5 = require("@sapphire/shapeshift"); +var import_v109 = require("discord-api-types/v10"); +var textInputStyleValidator = import_shapeshift5.s.nativeEnum(import_v109.TextInputStyle).setValidationEnabled(isValidationEnabled); +var minLengthValidator = import_shapeshift5.s.number().int().greaterThanOrEqual(0).lessThanOrEqual(4e3).setValidationEnabled(isValidationEnabled); +var maxLengthValidator = import_shapeshift5.s.number().int().greaterThanOrEqual(1).lessThanOrEqual(4e3).setValidationEnabled(isValidationEnabled); +var requiredValidator = import_shapeshift5.s.boolean().setValidationEnabled(isValidationEnabled); +var valueValidator = import_shapeshift5.s.string().lengthLessThanOrEqual(4e3).setValidationEnabled(isValidationEnabled); +var placeholderValidator2 = import_shapeshift5.s.string().lengthLessThanOrEqual(100).setValidationEnabled(isValidationEnabled); +var labelValidator = import_shapeshift5.s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(45).setValidationEnabled(isValidationEnabled); +var textInputPredicate = import_shapeshift5.s.object({ + type: import_shapeshift5.s.literal(import_v109.ComponentType.TextInput), + custom_id: customIdValidator, + style: textInputStyleValidator, + id: idValidator.optional(), + min_length: minLengthValidator.optional(), + max_length: maxLengthValidator.optional(), + placeholder: placeholderValidator2.optional(), + value: valueValidator.optional(), + required: requiredValidator.optional() +}).setValidationEnabled(isValidationEnabled); +function validateRequiredParameters(customId, style) { + customIdValidator.parse(customId); + textInputStyleValidator.parse(style); +} +__name(validateRequiredParameters, "validateRequiredParameters"); + +// src/components/selectMenu/BaseSelectMenu.ts +var BaseSelectMenuBuilder = class extends ComponentBuilder { + static { + __name(this, "BaseSelectMenuBuilder"); + } + /** + * Sets the placeholder for this select menu. + * + * @param placeholder - The placeholder to use + */ + setPlaceholder(placeholder) { + this.data.placeholder = placeholderValidator.parse(placeholder); + return this; + } + /** + * Sets the minimum values that must be selected in the select menu. + * + * @param minValues - The minimum values that must be selected + */ + setMinValues(minValues) { + this.data.min_values = minMaxValidator.parse(minValues); + return this; + } + /** + * Sets the maximum values that can be selected in the select menu. + * + * @param maxValues - The maximum values that can be selected + */ + setMaxValues(maxValues) { + this.data.max_values = minMaxValidator.parse(maxValues); + return this; + } + /** + * Sets the custom id for this select menu. + * + * @param customId - The custom id to use + */ + setCustomId(customId) { + this.data.custom_id = customIdValidator.parse(customId); + return this; + } + /** + * Sets whether this select menu is disabled. + * + * @param disabled - Whether this select menu is disabled + */ + setDisabled(disabled = true) { + this.data.disabled = disabledValidator.parse(disabled); + return this; + } + /** + * Sets whether this select menu is required. + * + * @remarks Only for use in modals. + * @param required - Whether this select menu is required + */ + setRequired(required = true) { + this.data.required = requiredValidator.parse(required); + return this; + } + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON() { + customIdValidator.parse(this.data.custom_id); + return { + ...this.data + }; + } +}; + +// src/components/selectMenu/ChannelSelectMenu.ts +var ChannelSelectMenuBuilder = class extends BaseSelectMenuBuilder { + static { + __name(this, "ChannelSelectMenuBuilder"); + } + /** + * Creates a new select menu from API data. + * + * @param data - The API data to create this select menu with + * @example + * Creating a select menu from an API data object: + * ```ts + * const selectMenu = new ChannelSelectMenuBuilder({ + * custom_id: 'a cool select menu', + * placeholder: 'select an option', + * max_values: 2, + * }); + * ``` + * @example + * Creating a select menu using setters and API data: + * ```ts + * const selectMenu = new ChannelSelectMenuBuilder({ + * custom_id: 'a cool select menu', + * }) + * .addChannelTypes(ChannelType.GuildText, ChannelType.GuildAnnouncement) + * .setMinValues(2); + * ``` + */ + constructor(data) { + super({ ...data, type: import_v1010.ComponentType.ChannelSelect }); + } + /** + * Adds channel types to this select menu. + * + * @param types - The channel types to use + */ + addChannelTypes(...types) { + const normalizedTypes = normalizeArray(types); + this.data.channel_types ??= []; + this.data.channel_types.push(...channelTypesValidator.parse(normalizedTypes)); + return this; + } + /** + * Sets channel types for this select menu. + * + * @param types - The channel types to use + */ + setChannelTypes(...types) { + const normalizedTypes = normalizeArray(types); + this.data.channel_types ??= []; + this.data.channel_types.splice(0, this.data.channel_types.length, ...channelTypesValidator.parse(normalizedTypes)); + return this; + } + /** + * Adds default channels to this auto populated select menu. + * + * @param channels - The channels to add + */ + addDefaultChannels(...channels) { + const normalizedValues = normalizeArray(channels); + optionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length); + this.data.default_values ??= []; + this.data.default_values.push( + ...normalizedValues.map((id) => ({ + id, + type: import_v1010.SelectMenuDefaultValueType.Channel + })) + ); + return this; + } + /** + * Sets default channels for this auto populated select menu. + * + * @param channels - The channels to set + */ + setDefaultChannels(...channels) { + const normalizedValues = normalizeArray(channels); + optionsLengthValidator.parse(normalizedValues.length); + this.data.default_values = normalizedValues.map((id) => ({ + id, + type: import_v1010.SelectMenuDefaultValueType.Channel + })); + return this; + } + /** + * {@inheritDoc BaseSelectMenuBuilder.toJSON} + */ + toJSON() { + customIdValidator.parse(this.data.custom_id); + return { + ...this.data + }; + } +}; + +// src/components/selectMenu/MentionableSelectMenu.ts +var import_v1011 = require("discord-api-types/v10"); +var MentionableSelectMenuBuilder = class extends BaseSelectMenuBuilder { + static { + __name(this, "MentionableSelectMenuBuilder"); + } + /** + * Creates a new select menu from API data. + * + * @param data - The API data to create this select menu with + * @example + * Creating a select menu from an API data object: + * ```ts + * const selectMenu = new MentionableSelectMenuBuilder({ + * custom_id: 'a cool select menu', + * placeholder: 'select an option', + * max_values: 2, + * }); + * ``` + * @example + * Creating a select menu using setters and API data: + * ```ts + * const selectMenu = new MentionableSelectMenuBuilder({ + * custom_id: 'a cool select menu', + * }) + * .setMinValues(1); + * ``` + */ + constructor(data) { + super({ ...data, type: import_v1011.ComponentType.MentionableSelect }); + } + /** + * Adds default roles to this auto populated select menu. + * + * @param roles - The roles to add + */ + addDefaultRoles(...roles) { + const normalizedValues = normalizeArray(roles); + optionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length); + this.data.default_values ??= []; + this.data.default_values.push( + ...normalizedValues.map((id) => ({ + id, + type: import_v1011.SelectMenuDefaultValueType.Role + })) + ); + return this; + } + /** + * Adds default users to this auto populated select menu. + * + * @param users - The users to add + */ + addDefaultUsers(...users) { + const normalizedValues = normalizeArray(users); + optionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length); + this.data.default_values ??= []; + this.data.default_values.push( + ...normalizedValues.map((id) => ({ + id, + type: import_v1011.SelectMenuDefaultValueType.User + })) + ); + return this; + } + /** + * Adds default values to this auto populated select menu. + * + * @param values - The values to add + */ + addDefaultValues(...values) { + const normalizedValues = normalizeArray(values); + optionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length); + this.data.default_values ??= []; + this.data.default_values.push(...normalizedValues); + return this; + } + /** + * Sets default values for this auto populated select menu. + * + * @param values - The values to set + */ + setDefaultValues(...values) { + const normalizedValues = normalizeArray(values); + optionsLengthValidator.parse(normalizedValues.length); + this.data.default_values = normalizedValues; + return this; + } +}; + +// src/components/selectMenu/RoleSelectMenu.ts +var import_v1012 = require("discord-api-types/v10"); +var RoleSelectMenuBuilder = class extends BaseSelectMenuBuilder { + static { + __name(this, "RoleSelectMenuBuilder"); + } + /** + * Creates a new select menu from API data. + * + * @param data - The API data to create this select menu with + * @example + * Creating a select menu from an API data object: + * ```ts + * const selectMenu = new RoleSelectMenuBuilder({ + * custom_id: 'a cool select menu', + * placeholder: 'select an option', + * max_values: 2, + * }); + * ``` + * @example + * Creating a select menu using setters and API data: + * ```ts + * const selectMenu = new RoleSelectMenuBuilder({ + * custom_id: 'a cool select menu', + * }) + * .setMinValues(1); + * ``` + */ + constructor(data) { + super({ ...data, type: import_v1012.ComponentType.RoleSelect }); + } + /** + * Adds default roles to this auto populated select menu. + * + * @param roles - The roles to add + */ + addDefaultRoles(...roles) { + const normalizedValues = normalizeArray(roles); + optionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length); + this.data.default_values ??= []; + this.data.default_values.push( + ...normalizedValues.map((id) => ({ + id, + type: import_v1012.SelectMenuDefaultValueType.Role + })) + ); + return this; + } + /** + * Sets default roles for this auto populated select menu. + * + * @param roles - The roles to set + */ + setDefaultRoles(...roles) { + const normalizedValues = normalizeArray(roles); + optionsLengthValidator.parse(normalizedValues.length); + this.data.default_values = normalizedValues.map((id) => ({ + id, + type: import_v1012.SelectMenuDefaultValueType.Role + })); + return this; + } +}; + +// src/components/selectMenu/StringSelectMenu.ts +var import_v1014 = require("discord-api-types/v10"); + +// src/components/selectMenu/Assertions.ts +var Assertions_exports6 = {}; +__export(Assertions_exports6, { + selectMenuChannelPredicate: () => selectMenuChannelPredicate, + selectMenuMentionablePredicate: () => selectMenuMentionablePredicate, + selectMenuRolePredicate: () => selectMenuRolePredicate, + selectMenuStringOptionPredicate: () => selectMenuStringOptionPredicate, + selectMenuStringPredicate: () => selectMenuStringPredicate, + selectMenuUserPredicate: () => selectMenuUserPredicate +}); +var import_shapeshift6 = require("@sapphire/shapeshift"); +var import_v1013 = require("discord-api-types/v10"); +var selectMenuBasePredicate = import_shapeshift6.s.object({ + id: idValidator.optional(), + placeholder: import_shapeshift6.s.string().lengthLessThanOrEqual(150).optional(), + min_values: import_shapeshift6.s.number().greaterThanOrEqual(0).lessThanOrEqual(25).optional(), + max_values: import_shapeshift6.s.number().greaterThanOrEqual(0).lessThanOrEqual(25).optional(), + custom_id: customIdValidator, + disabled: import_shapeshift6.s.boolean().optional() +}); +var selectMenuChannelPredicate = selectMenuBasePredicate.extend({ + type: import_shapeshift6.s.literal(import_v1013.ComponentType.ChannelSelect), + channel_types: import_shapeshift6.s.nativeEnum(import_v1013.ChannelType).array().optional(), + default_values: import_shapeshift6.s.object({ id: import_shapeshift6.s.string(), type: import_shapeshift6.s.literal(import_v1013.SelectMenuDefaultValueType.Channel) }).array().lengthLessThanOrEqual(25).optional() +}).setValidationEnabled(isValidationEnabled); +var selectMenuMentionablePredicate = selectMenuBasePredicate.extend({ + type: import_shapeshift6.s.literal(import_v1013.ComponentType.MentionableSelect), + default_values: import_shapeshift6.s.object({ + id: import_shapeshift6.s.string(), + type: import_shapeshift6.s.union([import_shapeshift6.s.literal(import_v1013.SelectMenuDefaultValueType.Role), import_shapeshift6.s.literal(import_v1013.SelectMenuDefaultValueType.User)]) + }).array().lengthLessThanOrEqual(25).optional() +}).setValidationEnabled(isValidationEnabled); +var selectMenuRolePredicate = selectMenuBasePredicate.extend({ + type: import_shapeshift6.s.literal(import_v1013.ComponentType.RoleSelect), + default_values: import_shapeshift6.s.object({ id: import_shapeshift6.s.string(), type: import_shapeshift6.s.literal(import_v1013.SelectMenuDefaultValueType.Role) }).array().lengthLessThanOrEqual(25).optional() +}).setValidationEnabled(isValidationEnabled); +var selectMenuUserPredicate = selectMenuBasePredicate.extend({ + type: import_shapeshift6.s.literal(import_v1013.ComponentType.UserSelect), + default_values: import_shapeshift6.s.object({ id: import_shapeshift6.s.string(), type: import_shapeshift6.s.literal(import_v1013.SelectMenuDefaultValueType.User) }).array().lengthLessThanOrEqual(25).optional() +}).setValidationEnabled(isValidationEnabled); +var selectMenuStringOptionPredicate = import_shapeshift6.s.object({ + label: import_shapeshift6.s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(100), + value: import_shapeshift6.s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(100), + description: import_shapeshift6.s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(100).optional(), + emoji: emojiValidator.optional(), + default: import_shapeshift6.s.boolean().optional() +}).setValidationEnabled(isValidationEnabled); +var selectMenuStringPredicate = selectMenuBasePredicate.extend({ + type: import_shapeshift6.s.literal(import_v1013.ComponentType.StringSelect), + options: selectMenuStringOptionPredicate.array().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(25) +}).reshape((value) => { + if (value.min_values !== void 0 && value.options.length < value.min_values) { + return import_shapeshift6.Result.err(new RangeError(`The number of options must be greater than or equal to min_values`)); + } + if (value.min_values !== void 0 && value.max_values !== void 0 && value.min_values > value.max_values) { + return import_shapeshift6.Result.err( + new RangeError(`The maximum amount of options must be greater than or equal to the minimum amount of options`) + ); + } + return import_shapeshift6.Result.ok(value); +}).setValidationEnabled(isValidationEnabled); + +// src/components/selectMenu/StringSelectMenu.ts +var StringSelectMenuBuilder = class extends BaseSelectMenuBuilder { + static { + __name(this, "StringSelectMenuBuilder"); + } + /** + * The options within this select menu. + */ + options; + /** + * Creates a new select menu from API data. + * + * @param data - The API data to create this select menu with + * @example + * Creating a select menu from an API data object: + * ```ts + * const selectMenu = new StringSelectMenuBuilder({ + * custom_id: 'a cool select menu', + * placeholder: 'select an option', + * max_values: 2, + * options: [ + * { label: 'option 1', value: '1' }, + * { label: 'option 2', value: '2' }, + * { label: 'option 3', value: '3' }, + * ], + * }); + * ``` + * @example + * Creating a select menu using setters and API data: + * ```ts + * const selectMenu = new StringSelectMenuBuilder({ + * custom_id: 'a cool select menu', + * }) + * .setMinValues(1) + * .addOptions({ + * label: 'Catchy', + * value: 'catch', + * }); + * ``` + */ + constructor(data) { + const { options, ...initData } = data ?? {}; + super({ ...initData, type: import_v1014.ComponentType.StringSelect }); + this.options = options?.map((option) => new StringSelectMenuOptionBuilder(option)) ?? []; + } + /** + * Adds options to this select menu. + * + * @param options - The options to add + */ + addOptions(...options) { + const normalizedOptions = normalizeArray(options); + optionsLengthValidator.parse(this.options.length + normalizedOptions.length); + this.options.push( + ...normalizedOptions.map( + (normalizedOption) => normalizedOption instanceof StringSelectMenuOptionBuilder ? normalizedOption : new StringSelectMenuOptionBuilder(selectMenuStringOptionPredicate.parse(normalizedOption)) + ) + ); + return this; + } + /** + * Sets the options for this select menu. + * + * @param options - The options to set + */ + setOptions(...options) { + return this.spliceOptions(0, this.options.length, ...options); + } + /** + * Removes, replaces, or inserts options for this select menu. + * + * @remarks + * This method behaves similarly + * to {@link https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/splice | Array.prototype.splice()}. + * It's useful for modifying and adjusting the order of existing options. + * @example + * Remove the first option: + * ```ts + * selectMenu.spliceOptions(0, 1); + * ``` + * @example + * Remove the first n option: + * ```ts + * const n = 4; + * selectMenu.spliceOptions(0, n); + * ``` + * @example + * Remove the last option: + * ```ts + * selectMenu.spliceOptions(-1, 1); + * ``` + * @param index - The index to start at + * @param deleteCount - The number of options to remove + * @param options - The replacing option objects or builders + */ + spliceOptions(index, deleteCount, ...options) { + const normalizedOptions = normalizeArray(options); + const clone = [...this.options]; + clone.splice( + index, + deleteCount, + ...normalizedOptions.map( + (normalizedOption) => normalizedOption instanceof StringSelectMenuOptionBuilder ? normalizedOption : new StringSelectMenuOptionBuilder(selectMenuStringOptionPredicate.parse(normalizedOption)) + ) + ); + optionsLengthValidator.parse(clone.length); + this.options.splice(0, this.options.length, ...clone); + return this; + } + /** + * {@inheritDoc BaseSelectMenuBuilder.toJSON} + */ + toJSON() { + validateRequiredSelectMenuParameters(this.options, this.data.custom_id); + return { + ...this.data, + options: this.options.map((option) => option.toJSON()) + }; + } +}; + +// src/components/selectMenu/UserSelectMenu.ts +var import_v1015 = require("discord-api-types/v10"); +var UserSelectMenuBuilder = class extends BaseSelectMenuBuilder { + static { + __name(this, "UserSelectMenuBuilder"); + } + /** + * Creates a new select menu from API data. + * + * @param data - The API data to create this select menu with + * @example + * Creating a select menu from an API data object: + * ```ts + * const selectMenu = new UserSelectMenuBuilder({ + * custom_id: 'a cool select menu', + * placeholder: 'select an option', + * max_values: 2, + * }); + * ``` + * @example + * Creating a select menu using setters and API data: + * ```ts + * const selectMenu = new UserSelectMenuBuilder({ + * custom_id: 'a cool select menu', + * }) + * .setMinValues(1); + * ``` + */ + constructor(data) { + super({ ...data, type: import_v1015.ComponentType.UserSelect }); + } + /** + * Adds default users to this auto populated select menu. + * + * @param users - The users to add + */ + addDefaultUsers(...users) { + const normalizedValues = normalizeArray(users); + optionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length); + this.data.default_values ??= []; + this.data.default_values.push( + ...normalizedValues.map((id) => ({ + id, + type: import_v1015.SelectMenuDefaultValueType.User + })) + ); + return this; + } + /** + * Sets default users for this auto populated select menu. + * + * @param users - The users to set + */ + setDefaultUsers(...users) { + const normalizedValues = normalizeArray(users); + optionsLengthValidator.parse(normalizedValues.length); + this.data.default_values = normalizedValues.map((id) => ({ + id, + type: import_v1015.SelectMenuDefaultValueType.User + })); + return this; + } +}; + +// src/components/textInput/TextInput.ts +var import_util = require("@discordjs/util"); +var import_v1016 = require("discord-api-types/v10"); +var import_fast_deep_equal = __toESM(require("fast-deep-equal")); +var TextInputBuilder = class extends ComponentBuilder { + static { + __name(this, "TextInputBuilder"); + } + /** + * Creates a new text input from API data. + * + * @param data - The API data to create this text input with + * @example + * Creating a text input from an API data object: + * ```ts + * const textInput = new TextInputBuilder({ + * custom_id: 'a cool text input', + * placeholder: 'Type something', + * style: TextInputStyle.Short, + * }); + * ``` + * @example + * Creating a text input using setters and API data: + * ```ts + * const textInput = new TextInputBuilder({ + * placeholder: 'Type something else', + * }) + * .setCustomId('woah') + * .setStyle(TextInputStyle.Paragraph); + * ``` + */ + constructor(data) { + super({ type: import_v1016.ComponentType.TextInput, ...data }); + } + /** + * Sets the custom id for this text input. + * + * @param customId - The custom id to use + */ + setCustomId(customId) { + this.data.custom_id = customIdValidator.parse(customId); + return this; + } + /** + * Sets the label for this text input. + * + * @param label - The label to use + * @deprecated Use a label builder to create a label (and optionally a description) instead. + */ + setLabel(label) { + this.data.label = labelValidator.parse(label); + return this; + } + /** + * Sets the style for this text input. + * + * @param style - The style to use + */ + setStyle(style) { + this.data.style = textInputStyleValidator.parse(style); + return this; + } + /** + * Sets the minimum length of text for this text input. + * + * @param minLength - The minimum length of text for this text input + */ + setMinLength(minLength) { + this.data.min_length = minLengthValidator.parse(minLength); + return this; + } + /** + * Sets the maximum length of text for this text input. + * + * @param maxLength - The maximum length of text for this text input + */ + setMaxLength(maxLength) { + this.data.max_length = maxLengthValidator.parse(maxLength); + return this; + } + /** + * Sets the placeholder for this text input. + * + * @param placeholder - The placeholder to use + */ + setPlaceholder(placeholder) { + this.data.placeholder = placeholderValidator2.parse(placeholder); + return this; + } + /** + * Sets the value for this text input. + * + * @param value - The value to use + */ + setValue(value) { + this.data.value = valueValidator.parse(value); + return this; + } + /** + * Sets whether this text input is required. + * + * @param required - Whether this text input is required + */ + setRequired(required = true) { + this.data.required = requiredValidator.parse(required); + return this; + } + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON() { + validateRequiredParameters(this.data.custom_id, this.data.style); + return { + ...this.data + }; + } + /** + * Whether this is equal to another structure. + */ + equals(other) { + if ((0, import_util.isJSONEncodable)(other)) { + return (0, import_fast_deep_equal.default)(other.toJSON(), this.data); + } + return (0, import_fast_deep_equal.default)(other, this.data); + } +}; + +// src/components/label/Assertions.ts +var Assertions_exports7 = {}; +__export(Assertions_exports7, { + labelPredicate: () => labelPredicate +}); +var import_shapeshift7 = require("@sapphire/shapeshift"); +var import_v1017 = require("discord-api-types/v10"); +var labelPredicate = import_shapeshift7.s.object({ + id: idValidator.optional(), + type: import_shapeshift7.s.literal(import_v1017.ComponentType.Label), + label: import_shapeshift7.s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(45), + description: import_shapeshift7.s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(100).optional(), + component: import_shapeshift7.s.union([ + textInputPredicate, + selectMenuUserPredicate, + selectMenuRolePredicate, + selectMenuMentionablePredicate, + selectMenuChannelPredicate, + selectMenuStringPredicate, + fileUploadPredicate, + checkboxPredicate, + checkboxGroupPredicate, + radioGroupPredicate + ]) +}).setValidationEnabled(isValidationEnabled); + +// src/components/label/Label.ts +var LabelBuilder = class extends ComponentBuilder { + static { + __name(this, "LabelBuilder"); + } + /** + * @internal + */ + data; + /** + * Creates a new label. + * + * @param data - The API data to create this label with + * @example + * Creating a label from an API data object: + * ```ts + * const label = new LabelBuilder({ + * label: "label", + * component, + * }); + * ``` + * @example + * Creating a label using setters and API data: + * ```ts + * const label = new LabelBuilder({ + * label: 'label', + * component, + * }).setLabel('new text'); + * ``` + */ + constructor(data = {}) { + super({ type: import_v1018.ComponentType.Label }); + const { component, ...rest } = data; + this.data = { + ...rest, + component: component ? createComponentBuilder(component) : void 0, + type: import_v1018.ComponentType.Label + }; + } + /** + * Sets the label for this label. + * + * @param label - The label to use + */ + setLabel(label) { + this.data.label = label; + return this; + } + /** + * Sets the description for this label. + * + * @param description - The description to use + */ + setDescription(description) { + this.data.description = description; + return this; + } + /** + * Clears the description for this label. + */ + clearDescription() { + this.data.description = void 0; + return this; + } + /** + * Sets a string select menu component to this label. + * + * @param input - A function that returns a component builder or an already built builder + */ + setStringSelectMenuComponent(input) { + this.data.component = resolveBuilder(input, StringSelectMenuBuilder); + return this; + } + /** + * Sets a user select menu component to this label. + * + * @param input - A function that returns a component builder or an already built builder + */ + setUserSelectMenuComponent(input) { + this.data.component = resolveBuilder(input, UserSelectMenuBuilder); + return this; + } + /** + * Sets a role select menu component to this label. + * + * @param input - A function that returns a component builder or an already built builder + */ + setRoleSelectMenuComponent(input) { + this.data.component = resolveBuilder(input, RoleSelectMenuBuilder); + return this; + } + /** + * Sets a mentionable select menu component to this label. + * + * @param input - A function that returns a component builder or an already built builder + */ + setMentionableSelectMenuComponent(input) { + this.data.component = resolveBuilder(input, MentionableSelectMenuBuilder); + return this; + } + /** + * Sets a channel select menu component to this label. + * + * @param input - A function that returns a component builder or an already built builder + */ + setChannelSelectMenuComponent(input) { + this.data.component = resolveBuilder(input, ChannelSelectMenuBuilder); + return this; + } + /** + * Sets a text input component to this label. + * + * @param input - A function that returns a component builder or an already built builder + */ + setTextInputComponent(input) { + this.data.component = resolveBuilder(input, TextInputBuilder); + return this; + } + /** + * Sets a file upload component to this label. + * + * @param input - A function that returns a component builder or an already built builder + */ + setFileUploadComponent(input) { + this.data.component = resolveBuilder(input, FileUploadBuilder); + return this; + } + /** + * Sets a checkbox component to this label. + * + * @param input - A function that returns a component builder or an already built builder + */ + setCheckboxComponent(input) { + this.data.component = resolveBuilder(input, CheckboxBuilder); + return this; + } + /** + * Sets a checkbox group component to this label. + * + * @param input - A function that returns a component builder or an already built builder + */ + setCheckboxGroupComponent(input) { + this.data.component = resolveBuilder(input, CheckboxGroupBuilder); + return this; + } + /** + * Sets a radio group component to this label. + * + * @param input - A function that returns a component builder or an already built builder + */ + setRadioGroupComponent(input) { + this.data.component = resolveBuilder(input, RadioGroupBuilder); + return this; + } + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON() { + const { component, ...rest } = this.data; + const data = { + ...rest, + // The label predicate validates the component. + component: component?.toJSON() + }; + labelPredicate.parse(data); + return data; + } +}; + +// src/components/v2/Container.ts +var import_v1024 = require("discord-api-types/v10"); + +// src/components/v2/Assertions.ts +var Assertions_exports8 = {}; +__export(Assertions_exports8, { + accessoryPredicate: () => accessoryPredicate, + assertReturnOfBuilder: () => assertReturnOfBuilder, + containerColorPredicate: () => containerColorPredicate, + descriptionPredicate: () => descriptionPredicate2, + dividerPredicate: () => dividerPredicate, + filePredicate: () => filePredicate, + spacingPredicate: () => spacingPredicate, + spoilerPredicate: () => spoilerPredicate, + textDisplayContentPredicate: () => textDisplayContentPredicate, + unfurledMediaItemPredicate: () => unfurledMediaItemPredicate, + validateComponentArray: () => validateComponentArray +}); +var import_shapeshift8 = require("@sapphire/shapeshift"); +var import_v1020 = require("discord-api-types/v10"); + +// src/components/v2/Thumbnail.ts +var import_v1019 = require("discord-api-types/v10"); +var ThumbnailBuilder = class extends ComponentBuilder { + static { + __name(this, "ThumbnailBuilder"); + } + /** + * Creates a new thumbnail from API data. + * + * @param data - The API data to create this thumbnail with + * @example + * Creating a thumbnail from an API data object: + * ```ts + * const thumbnail = new ThumbnailBuilder({ + * description: 'some text', + * media: { + * url: 'https://cdn.discordapp.com/embed/avatars/4.png', + * }, + * }); + * ``` + * @example + * Creating a thumbnail using setters and API data: + * ```ts + * const thumbnail = new ThumbnailBuilder({ + * media: { + * url: 'attachment://image.png', + * }, + * }) + * .setDescription('alt text'); + * ``` + */ + constructor(data = {}) { + super({ + type: import_v1019.ComponentType.Thumbnail, + ...data, + media: data.media ? { url: data.media.url } : void 0 + }); + } + /** + * Sets the description of this thumbnail. + * + * @param description - The description to use + */ + setDescription(description) { + this.data.description = descriptionPredicate2.parse(description); + return this; + } + /** + * Clears the description of this thumbnail. + */ + clearDescription() { + this.data.description = void 0; + return this; + } + /** + * Sets the spoiler status of this thumbnail. + * + * @param spoiler - The spoiler status to use + */ + setSpoiler(spoiler = true) { + this.data.spoiler = spoilerPredicate.parse(spoiler); + return this; + } + /** + * Sets the media URL of this thumbnail. + * + * @param url - The URL to use + */ + setURL(url) { + this.data.media = unfurledMediaItemPredicate.parse({ url }); + return this; + } + /** + * {@inheritdoc ComponentBuilder.toJSON} + */ + toJSON() { + unfurledMediaItemPredicate.parse(this.data.media); + return { ...this.data }; + } +}; + +// src/components/v2/Assertions.ts +var unfurledMediaItemPredicate = import_shapeshift8.s.object({ + url: import_shapeshift8.s.string().url( + { allowedProtocols: ["http:", "https:", "attachment:"] }, + { message: "Invalid protocol for media URL. Must be http:, https:, or attachment:" } + ) +}).setValidationEnabled(isValidationEnabled); +var descriptionPredicate2 = import_shapeshift8.s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(1024).setValidationEnabled(isValidationEnabled); +var filePredicate = import_shapeshift8.s.object({ + url: import_shapeshift8.s.string().url({ allowedProtocols: ["attachment:"] }, { message: "Invalid protocol for file URL. Must be attachment:" }) +}).setValidationEnabled(isValidationEnabled); +var spoilerPredicate = import_shapeshift8.s.boolean(); +var dividerPredicate = import_shapeshift8.s.boolean(); +var spacingPredicate = import_shapeshift8.s.nativeEnum(import_v1020.SeparatorSpacingSize); +var textDisplayContentPredicate = import_shapeshift8.s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(4e3).setValidationEnabled(isValidationEnabled); +var accessoryPredicate = import_shapeshift8.s.instance(ButtonBuilder).or(import_shapeshift8.s.instance(ThumbnailBuilder)).setValidationEnabled(isValidationEnabled); +var containerColorPredicate = colorPredicate.nullish(); +function assertReturnOfBuilder(input, ExpectedInstanceOf) { + import_shapeshift8.s.instance(ExpectedInstanceOf).setValidationEnabled(isValidationEnabled).parse(input); +} +__name(assertReturnOfBuilder, "assertReturnOfBuilder"); +function validateComponentArray(input, min, max, ExpectedInstanceOf) { + (ExpectedInstanceOf ? import_shapeshift8.s.instance(ExpectedInstanceOf) : import_shapeshift8.s.instance(ComponentBuilder)).array().lengthGreaterThanOrEqual(min).lengthLessThanOrEqual(max).setValidationEnabled(isValidationEnabled).parse(input); +} +__name(validateComponentArray, "validateComponentArray"); + +// src/components/v2/File.ts +var import_v1021 = require("discord-api-types/v10"); +var FileBuilder = class extends ComponentBuilder { + static { + __name(this, "FileBuilder"); + } + /** + * Creates a new file from API data. + * + * @param data - The API data to create this file with + * @example + * Creating a file from an API data object: + * ```ts + * const file = new FileBuilder({ + * spoiler: true, + * file: { + * url: 'attachment://file.png', + * }, + * }); + * ``` + * @example + * Creating a file using setters and API data: + * ```ts + * const file = new FileBuilder({ + * file: { + * url: 'attachment://image.jpg', + * }, + * }) + * .setSpoiler(false); + * ``` + */ + constructor(data = {}) { + super({ type: import_v1021.ComponentType.File, ...data, file: data.file ? { url: data.file.url } : void 0 }); + } + /** + * Sets the spoiler status of this file. + * + * @param spoiler - The spoiler status to use + */ + setSpoiler(spoiler = true) { + this.data.spoiler = spoilerPredicate.parse(spoiler); + return this; + } + /** + * Sets the media URL of this file. + * + * @param url - The URL to use + */ + setURL(url) { + this.data.file = filePredicate.parse({ url }); + return this; + } + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON() { + filePredicate.parse(this.data.file); + return { ...this.data, file: { ...this.data.file } }; + } +}; + +// src/components/v2/Separator.ts +var import_v1022 = require("discord-api-types/v10"); +var SeparatorBuilder = class extends ComponentBuilder { + static { + __name(this, "SeparatorBuilder"); + } + /** + * Creates a new separator from API data. + * + * @param data - The API data to create this separator with + * @example + * Creating a separator from an API data object: + * ```ts + * const separator = new SeparatorBuilder({ + * spacing: SeparatorSpacingSize.Small, + * divider: true, + * }); + * ``` + * @example + * Creating a separator using setters and API data: + * ```ts + * const separator = new SeparatorBuilder({ + * spacing: SeparatorSpacingSize.Large, + * }) + * .setDivider(false); + * ``` + */ + constructor(data = {}) { + super({ + type: import_v1022.ComponentType.Separator, + ...data + }); + } + /** + * Sets whether this separator should show a divider line. + * + * @param divider - Whether to show a divider line + */ + setDivider(divider = true) { + this.data.divider = dividerPredicate.parse(divider); + return this; + } + /** + * Sets the spacing of this separator. + * + * @param spacing - The spacing to use + */ + setSpacing(spacing) { + this.data.spacing = spacingPredicate.parse(spacing); + return this; + } + /** + * Clears the spacing of this separator. + */ + clearSpacing() { + this.data.spacing = void 0; + return this; + } + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON() { + return { ...this.data }; + } +}; + +// src/components/v2/TextDisplay.ts +var import_v1023 = require("discord-api-types/v10"); +var TextDisplayBuilder = class extends ComponentBuilder { + static { + __name(this, "TextDisplayBuilder"); + } + /** + * Creates a new text display from API data. + * + * @param data - The API data to create this text display with + * @example + * Creating a text display from an API data object: + * ```ts + * const textDisplay = new TextDisplayBuilder({ + * content: 'some text', + * }); + * ``` + * @example + * Creating a text display using setters and API data: + * ```ts + * const textDisplay = new TextDisplayBuilder({ + * content: 'old text', + * }) + * .setContent('new text'); + * ``` + */ + constructor(data = {}) { + super({ + type: import_v1023.ComponentType.TextDisplay, + ...data + }); + } + /** + * Sets the text of this text display. + * + * @param content - The text to use + */ + setContent(content) { + this.data.content = textDisplayContentPredicate.parse(content); + return this; + } + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON() { + textDisplayContentPredicate.parse(this.data.content); + return { ...this.data }; + } +}; + +// src/components/v2/Container.ts +var ContainerBuilder = class extends ComponentBuilder { + static { + __name(this, "ContainerBuilder"); + } + /** + * The components within this container. + */ + components; + /** + * Creates a new container from API data. + * + * @param data - The API data to create this container with + * @example + * Creating a container from an API data object: + * ```ts + * const container = new ContainerBuilder({ + * components: [ + * { + * content: "Some text here", + * type: ComponentType.TextDisplay, + * }, + * ], + * }); + * ``` + * @example + * Creating a container using setters and API data: + * ```ts + * const container = new ContainerBuilder({ + * components: [ + * { + * content: "# Heading", + * type: ComponentType.TextDisplay, + * }, + * ], + * }) + * .addSeparatorComponents(separator) + * .addSectionComponents(section); + * ``` + */ + constructor({ components, ...data } = {}) { + super({ type: import_v1024.ComponentType.Container, ...data }); + this.components = components?.map((component) => createComponentBuilder(component)) ?? []; + } + /** + * Sets the accent color of this container. + * + * @param color - The color to use + */ + setAccentColor(color) { + containerColorPredicate.parse(color); + if (Array.isArray(color)) { + const [red, green, blue] = color; + this.data.accent_color = (red << 16) + (green << 8) + blue; + return this; + } + this.data.accent_color = color; + return this; + } + /** + * Clears the accent color of this container. + */ + clearAccentColor() { + this.data.accent_color = void 0; + return this; + } + /** + * Adds action row components to this container. + * + * @param components - The action row components to add + */ + addActionRowComponents(...components) { + this.components.push( + ...normalizeArray(components).map((component) => resolveBuilder(component, ActionRowBuilder)) + ); + return this; + } + /** + * Adds file components to this container. + * + * @param components - The file components to add + */ + addFileComponents(...components) { + this.components.push(...normalizeArray(components).map((component) => resolveBuilder(component, FileBuilder))); + return this; + } + /** + * Adds media gallery components to this container. + * + * @param components - The media gallery components to add + */ + addMediaGalleryComponents(...components) { + this.components.push( + ...normalizeArray(components).map((component) => resolveBuilder(component, MediaGalleryBuilder)) + ); + return this; + } + /** + * Adds section components to this container. + * + * @param components - The section components to add + */ + addSectionComponents(...components) { + this.components.push(...normalizeArray(components).map((component) => resolveBuilder(component, SectionBuilder))); + return this; + } + /** + * Adds separator components to this container. + * + * @param components - The separator components to add + */ + addSeparatorComponents(...components) { + this.components.push(...normalizeArray(components).map((component) => resolveBuilder(component, SeparatorBuilder))); + return this; + } + /** + * Adds text display components to this container. + * + * @param components - The text display components to add + */ + addTextDisplayComponents(...components) { + this.components.push( + ...normalizeArray(components).map((component) => resolveBuilder(component, TextDisplayBuilder)) + ); + return this; + } + /** + * Removes, replaces, or inserts components for this container. + * + * @param index - The index to start removing, replacing or inserting components + * @param deleteCount - The amount of components to remove + * @param components - The components to set + */ + spliceComponents(index, deleteCount, ...components) { + this.components.splice( + index, + deleteCount, + ...normalizeArray(components).map( + (component) => component instanceof ComponentBuilder ? component : createComponentBuilder(component) + ) + ); + return this; + } + /** + * Sets the spoiler status of this container. + * + * @param spoiler - The spoiler status to use + */ + setSpoiler(spoiler = true) { + this.data.spoiler = spoilerPredicate.parse(spoiler); + return this; + } + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON() { + return { + ...this.data, + components: this.components.map((component) => component.toJSON()) + }; + } +}; + +// src/components/v2/MediaGallery.ts +var import_v1025 = require("discord-api-types/v10"); + +// src/components/v2/MediaGalleryItem.ts +var MediaGalleryItemBuilder = class { + static { + __name(this, "MediaGalleryItemBuilder"); + } + /** + * The API data associated with this media gallery item. + */ + data; + /** + * Creates a new media gallery item from API data. + * + * @param data - The API data to create this media gallery item with + * @example + * Creating a media gallery item from an API data object: + * ```ts + * const item = new MediaGalleryItemBuilder({ + * description: "Some text here", + * media: { + * url: 'https://cdn.discordapp.com/embed/avatars/2.png', + * }, + * }); + * ``` + * @example + * Creating a media gallery item using setters and API data: + * ```ts + * const item = new MediaGalleryItemBuilder({ + * media: { + * url: 'https://cdn.discordapp.com/embed/avatars/5.png', + * }, + * }) + * .setDescription("alt text"); + * ``` + */ + constructor(data = {}) { + this.data = data; + } + /** + * Sets the description of this media gallery item. + * + * @param description - The description to use + */ + setDescription(description) { + this.data.description = descriptionPredicate2.parse(description); + return this; + } + /** + * Clears the description of this media gallery item. + */ + clearDescription() { + this.data.description = void 0; + return this; + } + /** + * Sets the spoiler status of this media gallery item. + * + * @param spoiler - The spoiler status to use + */ + setSpoiler(spoiler = true) { + this.data.spoiler = spoilerPredicate.parse(spoiler); + return this; + } + /** + * Sets the media URL of this media gallery item. + * + * @param url - The URL to use + */ + setURL(url) { + this.data.media = unfurledMediaItemPredicate.parse({ url }); + return this; + } + /** + * Serializes this builder to API-compatible JSON data. + * + * @remarks + * This method runs validations on the data before serializing it. + * As such, it may throw an error if the data is invalid. + */ + toJSON() { + unfurledMediaItemPredicate.parse(this.data.media); + return { ...this.data }; + } +}; + +// src/components/v2/MediaGallery.ts +var MediaGalleryBuilder = class extends ComponentBuilder { + static { + __name(this, "MediaGalleryBuilder"); + } + /** + * The components within this container. + */ + items; + /** + * Creates a new media gallery from API data. + * + * @param data - The API data to create this media gallery with + * @example + * Creating a media gallery from an API data object: + * ```ts + * const mediaGallery = new MediaGalleryBuilder({ + * items: [ + * { + * description: "Some text here", + * media: { + * url: 'https://cdn.discordapp.com/embed/avatars/2.png', + * }, + * }, + * ], + * }); + * ``` + * @example + * Creating a media gallery using setters and API data: + * ```ts + * const mediaGallery = new MediaGalleryBuilder({ + * items: [ + * { + * description: "alt text", + * media: { + * url: 'https://cdn.discordapp.com/embed/avatars/5.png', + * }, + * }, + * ], + * }) + * .addItems(item2, item3); + * ``` + */ + constructor({ items, ...data } = {}) { + super({ type: import_v1025.ComponentType.MediaGallery, ...data }); + this.items = items?.map((item) => new MediaGalleryItemBuilder(item)) ?? []; + } + /** + * Adds items to this media gallery. + * + * @param items - The items to add + */ + addItems(...items) { + this.items.push( + ...normalizeArray(items).map((input) => { + const result = resolveBuilder(input, MediaGalleryItemBuilder); + assertReturnOfBuilder(result, MediaGalleryItemBuilder); + return result; + }) + ); + return this; + } + /** + * Removes, replaces, or inserts media gallery items for this media gallery. + * + * @param index - The index to start removing, replacing or inserting items + * @param deleteCount - The amount of items to remove + * @param items - The items to insert + */ + spliceItems(index, deleteCount, ...items) { + this.items.splice( + index, + deleteCount, + ...normalizeArray(items).map((input) => { + const result = resolveBuilder(input, MediaGalleryItemBuilder); + assertReturnOfBuilder(result, MediaGalleryItemBuilder); + return result; + }) + ); + return this; + } + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON() { + validateComponentArray(this.items, 1, 10, MediaGalleryItemBuilder); + return { + ...this.data, + items: this.items.map((item) => item.toJSON()) + }; + } +}; + +// src/components/v2/Section.ts +var import_v1026 = require("discord-api-types/v10"); +var SectionBuilder = class extends ComponentBuilder { + static { + __name(this, "SectionBuilder"); + } + /** + * The components within this section. + */ + components; + /** + * The accessory of this section. + */ + accessory; + /** + * Creates a new section from API data. + * + * @param data - The API data to create this section with + * @example + * Creating a section from an API data object: + * ```ts + * const section = new SectionBuilder({ + * components: [ + * { + * content: "Some text here", + * type: ComponentType.TextDisplay, + * }, + * ], + * accessory: { + * media: { + * url: 'https://cdn.discordapp.com/embed/avatars/3.png', + * }, + * } + * }); + * ``` + * @example + * Creating a section using setters and API data: + * ```ts + * const section = new SectionBuilder({ + * components: [ + * { + * content: "# Heading", + * type: ComponentType.TextDisplay, + * }, + * ], + * }) + * .setPrimaryButtonAccessory(button); + * ``` + */ + constructor({ components, accessory, ...data } = {}) { + super({ type: import_v1026.ComponentType.Section, ...data }); + this.components = components?.map((component) => createComponentBuilder(component)) ?? []; + this.accessory = accessory ? createComponentBuilder(accessory) : void 0; + } + /** + * Sets the accessory of this section to a button. + * + * @param accessory - The accessory to use + */ + setButtonAccessory(accessory) { + Reflect.set(this, "accessory", accessoryPredicate.parse(resolveBuilder(accessory, ButtonBuilder))); + return this; + } + /** + * Sets the accessory of this section to a thumbnail. + * + * @param accessory - The accessory to use + */ + setThumbnailAccessory(accessory) { + Reflect.set(this, "accessory", accessoryPredicate.parse(resolveBuilder(accessory, ThumbnailBuilder))); + return this; + } + /** + * Adds text display components to this section. + * + * @param components - The text display components to add + */ + addTextDisplayComponents(...components) { + this.components.push( + ...normalizeArray(components).map((input) => { + const result = resolveBuilder(input, TextDisplayBuilder); + assertReturnOfBuilder(result, TextDisplayBuilder); + return result; + }) + ); + return this; + } + /** + * Removes, replaces, or inserts text display components for this section. + * + * @param index - The index to start removing, replacing or inserting text display components + * @param deleteCount - The amount of text display components to remove + * @param components - The text display components to insert + */ + spliceTextDisplayComponents(index, deleteCount, ...components) { + this.components.splice( + index, + deleteCount, + ...normalizeArray(components).map((input) => { + const result = resolveBuilder(input, TextDisplayBuilder); + assertReturnOfBuilder(result, TextDisplayBuilder); + return result; + }) + ); + return this; + } + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON() { + validateComponentArray(this.components, 1, 3, TextDisplayBuilder); + return { + ...this.data, + components: this.components.map((component) => component.toJSON()), + accessory: accessoryPredicate.parse(this.accessory).toJSON() + }; + } +}; + +// src/components/Components.ts +function createComponentBuilder(data) { + if (data instanceof ComponentBuilder) { + return data; + } + switch (data.type) { + case import_v1027.ComponentType.ActionRow: + return new ActionRowBuilder(data); + case import_v1027.ComponentType.Button: + return new ButtonBuilder(data); + case import_v1027.ComponentType.StringSelect: + return new StringSelectMenuBuilder(data); + case import_v1027.ComponentType.TextInput: + return new TextInputBuilder(data); + case import_v1027.ComponentType.UserSelect: + return new UserSelectMenuBuilder(data); + case import_v1027.ComponentType.RoleSelect: + return new RoleSelectMenuBuilder(data); + case import_v1027.ComponentType.MentionableSelect: + return new MentionableSelectMenuBuilder(data); + case import_v1027.ComponentType.ChannelSelect: + return new ChannelSelectMenuBuilder(data); + case import_v1027.ComponentType.File: + return new FileBuilder(data); + case import_v1027.ComponentType.Container: + return new ContainerBuilder(data); + case import_v1027.ComponentType.Section: + return new SectionBuilder(data); + case import_v1027.ComponentType.Separator: + return new SeparatorBuilder(data); + case import_v1027.ComponentType.TextDisplay: + return new TextDisplayBuilder(data); + case import_v1027.ComponentType.Thumbnail: + return new ThumbnailBuilder(data); + case import_v1027.ComponentType.MediaGallery: + return new MediaGalleryBuilder(data); + case import_v1027.ComponentType.Label: + return new LabelBuilder(data); + case import_v1027.ComponentType.FileUpload: + return new FileUploadBuilder(data); + case import_v1027.ComponentType.Checkbox: + return new CheckboxBuilder(data); + case import_v1027.ComponentType.CheckboxGroup: + return new CheckboxGroupBuilder(data); + case import_v1027.ComponentType.RadioGroup: + return new RadioGroupBuilder(data); + default: + throw new Error(`Cannot properly serialize component type: ${data.type}`); + } +} +__name(createComponentBuilder, "createComponentBuilder"); +function isBuilder(builder, Constructor) { + return builder instanceof Constructor; +} +__name(isBuilder, "isBuilder"); +function resolveBuilder(builder, Constructor) { + if (isBuilder(builder, Constructor)) { + return builder; + } + if (typeof builder === "function") { + return builder(new Constructor()); + } + return new Constructor(builder); +} +__name(resolveBuilder, "resolveBuilder"); + +// src/components/ActionRow.ts +var ActionRowBuilder = class extends ComponentBuilder { + static { + __name(this, "ActionRowBuilder"); + } + /** + * The components within this action row. + */ + components; + /** + * Creates a new action row from API data. + * + * @param data - The API data to create this action row with + * @example + * Creating an action row from an API data object: + * ```ts + * const actionRow = new ActionRowBuilder({ + * components: [ + * { + * custom_id: "custom id", + * label: "Type something", + * style: TextInputStyle.Short, + * type: ComponentType.TextInput, + * }, + * ], + * }); + * ``` + * @example + * Creating an action row using setters and API data: + * ```ts + * const actionRow = new ActionRowBuilder({ + * components: [ + * { + * custom_id: "custom id", + * label: "Click me", + * style: ButtonStyle.Primary, + * type: ComponentType.Button, + * }, + * ], + * }) + * .addComponents(button2, button3); + * ``` + */ + constructor({ components, ...data } = {}) { + super({ type: import_v1028.ComponentType.ActionRow, ...data }); + this.components = components?.map((component) => createComponentBuilder(component)) ?? []; + } + /** + * Adds components to this action row. + * + * @param components - The components to add + */ + addComponents(...components) { + this.components.push(...normalizeArray(components)); + return this; + } + /** + * Sets components for this action row. + * + * @param components - The components to set + */ + setComponents(...components) { + this.components.splice(0, this.components.length, ...normalizeArray(components)); + return this; + } + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON() { + return { + ...this.data, + components: this.components.map((component) => component.toJSON()) + }; + } +}; + +// src/interactions/modals/Modal.ts +var import_v1029 = require("discord-api-types/v10"); + +// src/interactions/modals/Assertions.ts +var Assertions_exports9 = {}; +__export(Assertions_exports9, { + componentsValidator: () => componentsValidator, + titleValidator: () => titleValidator, + validateRequiredParameters: () => validateRequiredParameters2 +}); +var import_shapeshift9 = require("@sapphire/shapeshift"); +var titleValidator = import_shapeshift9.s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(45).setValidationEnabled(isValidationEnabled); +var componentsValidator = import_shapeshift9.s.union([import_shapeshift9.s.instance(ActionRowBuilder), import_shapeshift9.s.instance(LabelBuilder), import_shapeshift9.s.instance(TextDisplayBuilder)]).array().lengthGreaterThanOrEqual(1).setValidationEnabled(isValidationEnabled); +function validateRequiredParameters2(customId, title, components) { + customIdValidator.parse(customId); + titleValidator.parse(title); + componentsValidator.parse(components); +} +__name(validateRequiredParameters2, "validateRequiredParameters"); + +// src/interactions/modals/Modal.ts +var ModalBuilder = class { + static { + __name(this, "ModalBuilder"); + } + /** + * The API data associated with this modal. + */ + data; + /** + * The components within this modal. + */ + components = []; + /** + * Creates a new modal from API data. + * + * @param data - The API data to create this modal with + */ + constructor({ components, ...data } = {}) { + this.data = { ...data }; + this.components = components?.map((component) => createComponentBuilder(component)) ?? []; + } + /** + * Sets the title of this modal. + * + * @param title - The title to use + */ + setTitle(title) { + this.data.title = titleValidator.parse(title); + return this; + } + /** + * Sets the custom id of this modal. + * + * @param customId - The custom id to use + */ + setCustomId(customId) { + this.data.custom_id = customIdValidator.parse(customId); + return this; + } + /** + * Adds components to this modal. + * + * @param components - The components to add + * @deprecated Use {@link ModalBuilder.addLabelComponents} or {@link ModalBuilder.addTextDisplayComponents} instead + */ + addComponents(...components) { + this.components.push( + ...normalizeArray(components).map((component, idx) => { + if (component instanceof ActionRowBuilder || component instanceof LabelBuilder || component instanceof TextDisplayBuilder) { + return component; + } + if (component instanceof TextInputBuilder) { + return new ActionRowBuilder().addComponents(component); + } + if ("type" in component) { + if (component.type === import_v1029.ComponentType.ActionRow) { + return new ActionRowBuilder(component); + } + if (component.type === import_v1029.ComponentType.Label) { + return new LabelBuilder(component); + } + if (component.type === import_v1029.ComponentType.TextDisplay) { + return new TextDisplayBuilder(component); + } + if (component.type === import_v1029.ComponentType.TextInput) { + return new ActionRowBuilder().addComponents( + new TextInputBuilder(component) + ); + } + } + throw new TypeError(`Invalid component passed in ModalBuilder.addComponents at index ${idx}!`); + }) + ); + return this; + } + /** + * Adds label components to this modal. + * + * @param components - The components to add + */ + addLabelComponents(...components) { + const normalized = normalizeArray(components); + const resolved = normalized.map((label) => resolveBuilder(label, LabelBuilder)); + this.components.push(...resolved); + return this; + } + /** + * Adds text display components to this modal. + * + * @param components - The components to add + */ + addTextDisplayComponents(...components) { + const normalized = normalizeArray(components); + const resolved = normalized.map((row) => resolveBuilder(row, TextDisplayBuilder)); + this.components.push(...resolved); + return this; + } + /** + * Adds action rows to this modal. + * + * @param components - The components to add + * @deprecated Use {@link ModalBuilder.addLabelComponents} instead + */ + addActionRowComponents(...components) { + const normalized = normalizeArray(components); + const resolved = normalized.map((row) => resolveBuilder(row, ActionRowBuilder)); + this.components.push(...resolved); + return this; + } + /** + * Sets the labels for this modal. + * + * @param components - The components to set + */ + setLabelComponents(...components) { + const normalized = normalizeArray(components); + this.spliceLabelComponents(0, this.components.length, ...normalized); + return this; + } + /** + * Removes, replaces, or inserts labels for this modal. + * + * @remarks + * This method behaves similarly + * to {@link https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/splice | Array.prototype.splice()}. + * The maximum amount of labels that can be added is 5. + * + * It's useful for modifying and adjusting order of the already-existing labels of a modal. + * @example + * Remove the first label: + * ```ts + * modal.spliceLabelComponents(0, 1); + * ``` + * @example + * Remove the first n labels: + * ```ts + * const n = 4; + * modal.spliceLabelComponents(0, n); + * ``` + * @example + * Remove the last label: + * ```ts + * modal.spliceLabelComponents(-1, 1); + * ``` + * @param index - The index to start at + * @param deleteCount - The number of labels to remove + * @param labels - The replacing label objects + */ + spliceLabelComponents(index, deleteCount, ...labels) { + const resolved = labels.map((label) => resolveBuilder(label, LabelBuilder)); + this.components.splice(index, deleteCount, ...resolved); + return this; + } + /** + * Sets components for this modal. + * + * @param components - The components to set + * @deprecated Use {@link ModalBuilder.setLabelComponents} instead + */ + setComponents(...components) { + this.components.splice(0, this.components.length, ...normalizeArray(components)); + return this; + } + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON() { + validateRequiredParameters2(this.data.custom_id, this.data.title, this.components); + return { + ...this.data, + components: this.components.map((component) => component.toJSON()) + }; + } +}; + +// src/interactions/slashCommands/Assertions.ts +var Assertions_exports10 = {}; +__export(Assertions_exports10, { + assertReturnOfBuilder: () => assertReturnOfBuilder2, + contextsPredicate: () => contextsPredicate, + integrationTypesPredicate: () => integrationTypesPredicate, + localizationMapPredicate: () => localizationMapPredicate, + validateChoicesLength: () => validateChoicesLength, + validateDMPermission: () => validateDMPermission, + validateDefaultMemberPermissions: () => validateDefaultMemberPermissions, + validateDefaultPermission: () => validateDefaultPermission, + validateDescription: () => validateDescription, + validateLocale: () => validateLocale, + validateLocalizationMap: () => validateLocalizationMap, + validateMaxOptionsLength: () => validateMaxOptionsLength, + validateNSFW: () => validateNSFW, + validateName: () => validateName, + validateRequired: () => validateRequired, + validateRequiredParameters: () => validateRequiredParameters3 +}); +var import_shapeshift10 = require("@sapphire/shapeshift"); +var import_v1030 = require("discord-api-types/v10"); +var namePredicate = import_shapeshift10.s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(32).regex(/^[\p{Ll}\p{Lm}\p{Lo}\p{N}\p{sc=Devanagari}\p{sc=Thai}_-]+$/u).setValidationEnabled(isValidationEnabled); +function validateName(name) { + namePredicate.parse(name); +} +__name(validateName, "validateName"); +var descriptionPredicate3 = import_shapeshift10.s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(100).setValidationEnabled(isValidationEnabled); +var localePredicate = import_shapeshift10.s.nativeEnum(import_v1030.Locale); +function validateDescription(description) { + descriptionPredicate3.parse(description); +} +__name(validateDescription, "validateDescription"); +var maxArrayLengthPredicate = import_shapeshift10.s.unknown().array().lengthLessThanOrEqual(25).setValidationEnabled(isValidationEnabled); +function validateLocale(locale) { + return localePredicate.parse(locale); +} +__name(validateLocale, "validateLocale"); +function validateMaxOptionsLength(options) { + maxArrayLengthPredicate.parse(options); +} +__name(validateMaxOptionsLength, "validateMaxOptionsLength"); +function validateRequiredParameters3(name, description, options) { + validateName(name); + validateDescription(description); + validateMaxOptionsLength(options); +} +__name(validateRequiredParameters3, "validateRequiredParameters"); +var booleanPredicate = import_shapeshift10.s.boolean(); +function validateDefaultPermission(value) { + booleanPredicate.parse(value); +} +__name(validateDefaultPermission, "validateDefaultPermission"); +function validateRequired(required) { + booleanPredicate.parse(required); +} +__name(validateRequired, "validateRequired"); +var choicesLengthPredicate = import_shapeshift10.s.number().lessThanOrEqual(25).setValidationEnabled(isValidationEnabled); +function validateChoicesLength(amountAdding, choices) { + choicesLengthPredicate.parse((choices?.length ?? 0) + amountAdding); +} +__name(validateChoicesLength, "validateChoicesLength"); +function assertReturnOfBuilder2(input, ExpectedInstanceOf) { + import_shapeshift10.s.instance(ExpectedInstanceOf).parse(input); +} +__name(assertReturnOfBuilder2, "assertReturnOfBuilder"); +var localizationMapPredicate = import_shapeshift10.s.object(Object.fromEntries(Object.values(import_v1030.Locale).map((locale) => [locale, import_shapeshift10.s.string().nullish()]))).strict().nullish().setValidationEnabled(isValidationEnabled); +function validateLocalizationMap(value) { + localizationMapPredicate.parse(value); +} +__name(validateLocalizationMap, "validateLocalizationMap"); +var dmPermissionPredicate = import_shapeshift10.s.boolean().nullish(); +function validateDMPermission(value) { + dmPermissionPredicate.parse(value); +} +__name(validateDMPermission, "validateDMPermission"); +var memberPermissionPredicate = import_shapeshift10.s.union([ + import_shapeshift10.s.bigint().transform((value) => value.toString()), + import_shapeshift10.s.number().safeInt().transform((value) => value.toString()), + import_shapeshift10.s.string().regex(/^\d+$/) +]).nullish(); +function validateDefaultMemberPermissions(permissions) { + return memberPermissionPredicate.parse(permissions); +} +__name(validateDefaultMemberPermissions, "validateDefaultMemberPermissions"); +function validateNSFW(value) { + booleanPredicate.parse(value); +} +__name(validateNSFW, "validateNSFW"); +var contextsPredicate = import_shapeshift10.s.array( + import_shapeshift10.s.nativeEnum(import_v1030.InteractionContextType).setValidationEnabled(isValidationEnabled) +); +var integrationTypesPredicate = import_shapeshift10.s.array( + import_shapeshift10.s.nativeEnum(import_v1030.ApplicationIntegrationType).setValidationEnabled(isValidationEnabled) +); + +// src/interactions/slashCommands/SlashCommandBuilder.ts +var import_ts_mixer6 = require("ts-mixer"); + +// src/interactions/slashCommands/mixins/NameAndDescription.ts +var SharedNameAndDescription = class { + static { + __name(this, "SharedNameAndDescription"); + } + /** + * The name of this command. + */ + name; + /** + * The name localizations of this command. + */ + name_localizations; + /** + * The description of this command. + */ + description; + /** + * The description localizations of this command. + */ + description_localizations; + /** + * Sets the name of this command. + * + * @param name - The name to use + */ + setName(name) { + validateName(name); + Reflect.set(this, "name", name); + return this; + } + /** + * Sets the description of this command. + * + * @param description - The description to use + */ + setDescription(description) { + validateDescription(description); + Reflect.set(this, "description", description); + return this; + } + /** + * Sets a name localization for this command. + * + * @param locale - The locale to set + * @param localizedName - The localized name for the given `locale` + */ + setNameLocalization(locale, localizedName) { + if (!this.name_localizations) { + Reflect.set(this, "name_localizations", {}); + } + const parsedLocale = validateLocale(locale); + if (localizedName === null) { + this.name_localizations[parsedLocale] = null; + return this; + } + validateName(localizedName); + this.name_localizations[parsedLocale] = localizedName; + return this; + } + /** + * Sets the name localizations for this command. + * + * @param localizedNames - The object of localized names to set + */ + setNameLocalizations(localizedNames) { + if (localizedNames === null) { + Reflect.set(this, "name_localizations", null); + return this; + } + Reflect.set(this, "name_localizations", {}); + for (const args of Object.entries(localizedNames)) { + this.setNameLocalization(...args); + } + return this; + } + /** + * Sets a description localization for this command. + * + * @param locale - The locale to set + * @param localizedDescription - The localized description for the given locale + */ + setDescriptionLocalization(locale, localizedDescription) { + if (!this.description_localizations) { + Reflect.set(this, "description_localizations", {}); + } + const parsedLocale = validateLocale(locale); + if (localizedDescription === null) { + this.description_localizations[parsedLocale] = null; + return this; + } + validateDescription(localizedDescription); + this.description_localizations[parsedLocale] = localizedDescription; + return this; + } + /** + * Sets the description localizations for this command. + * + * @param localizedDescriptions - The object of localized descriptions to set + */ + setDescriptionLocalizations(localizedDescriptions) { + if (localizedDescriptions === null) { + Reflect.set(this, "description_localizations", null); + return this; + } + Reflect.set(this, "description_localizations", {}); + for (const args of Object.entries(localizedDescriptions)) { + this.setDescriptionLocalization(...args); + } + return this; + } +}; + +// src/interactions/slashCommands/mixins/SharedSlashCommand.ts +var import_v1031 = require("discord-api-types/v10"); +var SharedSlashCommand = class { + static { + __name(this, "SharedSlashCommand"); + } + name = void 0; + name_localizations; + description = void 0; + description_localizations; + options = []; + contexts; + /** + * @deprecated Use {@link SharedSlashCommand.setDefaultMemberPermissions} or {@link SharedSlashCommand.setDMPermission} instead. + */ + default_permission = void 0; + default_member_permissions = void 0; + /** + * @deprecated Use {@link SharedSlashCommand.contexts} instead. + */ + dm_permission = void 0; + integration_types; + nsfw = void 0; + /** + * Sets the contexts of this command. + * + * @param contexts - The contexts + */ + setContexts(...contexts) { + Reflect.set(this, "contexts", contextsPredicate.parse(normalizeArray(contexts))); + return this; + } + /** + * Sets the integration types of this command. + * + * @param integrationTypes - The integration types + */ + setIntegrationTypes(...integrationTypes) { + Reflect.set(this, "integration_types", integrationTypesPredicate.parse(normalizeArray(integrationTypes))); + return this; + } + /** + * Sets whether the command is enabled by default when the application is added to a guild. + * + * @remarks + * If set to `false`, you will have to later `PUT` the permissions for this command. + * @param value - Whether or not to enable this command by default + * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} + * @deprecated Use {@link SharedSlashCommand.setDefaultMemberPermissions} or {@link SharedSlashCommand.setDMPermission} instead. + */ + setDefaultPermission(value) { + validateDefaultPermission(value); + Reflect.set(this, "default_permission", value); + return this; + } + /** + * Sets the default permissions a member should have in order to run the command. + * + * @remarks + * You can set this to `'0'` to disable the command by default. + * @param permissions - The permissions bit field to set + * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} + */ + setDefaultMemberPermissions(permissions) { + const permissionValue = validateDefaultMemberPermissions(permissions); + Reflect.set(this, "default_member_permissions", permissionValue); + return this; + } + /** + * Sets if the command is available in direct messages with the application. + * + * @remarks + * By default, commands are visible. This method is only for global commands. + * @param enabled - Whether the command should be enabled in direct messages + * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} + * @deprecated + * Use {@link SharedSlashCommand.setContexts} instead. + */ + setDMPermission(enabled) { + validateDMPermission(enabled); + Reflect.set(this, "dm_permission", enabled); + return this; + } + /** + * Sets whether this command is NSFW. + * + * @param nsfw - Whether this command is NSFW + */ + setNSFW(nsfw = true) { + validateNSFW(nsfw); + Reflect.set(this, "nsfw", nsfw); + return this; + } + /** + * Serializes this builder to API-compatible JSON data. + * + * @remarks + * This method runs validations on the data before serializing it. + * As such, it may throw an error if the data is invalid. + */ + toJSON() { + validateRequiredParameters3(this.name, this.description, this.options); + validateLocalizationMap(this.name_localizations); + validateLocalizationMap(this.description_localizations); + return { + ...this, + type: import_v1031.ApplicationCommandType.ChatInput, + options: this.options.map((option) => option.toJSON()) + }; + } +}; + +// src/interactions/slashCommands/options/attachment.ts +var import_v1032 = require("discord-api-types/v10"); + +// src/interactions/slashCommands/mixins/ApplicationCommandOptionBase.ts +var ApplicationCommandOptionBase = class extends SharedNameAndDescription { + static { + __name(this, "ApplicationCommandOptionBase"); + } + /** + * Whether this option is required. + * + * @defaultValue `false` + */ + required = false; + /** + * Sets whether this option is required. + * + * @param required - Whether this option should be required + */ + setRequired(required) { + validateRequired(required); + Reflect.set(this, "required", required); + return this; + } + /** + * This method runs required validators on this builder. + */ + runRequiredValidations() { + validateRequiredParameters3(this.name, this.description, []); + validateLocalizationMap(this.name_localizations); + validateLocalizationMap(this.description_localizations); + validateRequired(this.required); + } +}; + +// src/interactions/slashCommands/options/attachment.ts +var SlashCommandAttachmentOption = class extends ApplicationCommandOptionBase { + static { + __name(this, "SlashCommandAttachmentOption"); + } + /** + * The type of this option. + */ + type = import_v1032.ApplicationCommandOptionType.Attachment; + /** + * {@inheritDoc ApplicationCommandOptionBase.toJSON} + */ + toJSON() { + this.runRequiredValidations(); + return { ...this }; + } +}; + +// src/interactions/slashCommands/options/boolean.ts +var import_v1033 = require("discord-api-types/v10"); +var SlashCommandBooleanOption = class extends ApplicationCommandOptionBase { + static { + __name(this, "SlashCommandBooleanOption"); + } + /** + * The type of this option. + */ + type = import_v1033.ApplicationCommandOptionType.Boolean; + /** + * {@inheritDoc ApplicationCommandOptionBase.toJSON} + */ + toJSON() { + this.runRequiredValidations(); + return { ...this }; + } +}; + +// src/interactions/slashCommands/options/channel.ts +var import_v1035 = require("discord-api-types/v10"); +var import_ts_mixer = require("ts-mixer"); + +// src/interactions/slashCommands/mixins/ApplicationCommandOptionChannelTypesMixin.ts +var import_shapeshift11 = require("@sapphire/shapeshift"); +var import_v1034 = require("discord-api-types/v10"); +var allowedChannelTypes = [ + import_v1034.ChannelType.GuildText, + import_v1034.ChannelType.GuildVoice, + import_v1034.ChannelType.GuildCategory, + import_v1034.ChannelType.GuildAnnouncement, + import_v1034.ChannelType.AnnouncementThread, + import_v1034.ChannelType.PublicThread, + import_v1034.ChannelType.PrivateThread, + import_v1034.ChannelType.GuildStageVoice, + import_v1034.ChannelType.GuildForum, + import_v1034.ChannelType.GuildMedia +]; +var channelTypesPredicate = import_shapeshift11.s.array(import_shapeshift11.s.union(allowedChannelTypes.map((type) => import_shapeshift11.s.literal(type)))); +var ApplicationCommandOptionChannelTypesMixin = class { + static { + __name(this, "ApplicationCommandOptionChannelTypesMixin"); + } + /** + * The channel types of this option. + */ + channel_types; + /** + * Adds channel types to this option. + * + * @param channelTypes - The channel types + */ + addChannelTypes(...channelTypes) { + if (this.channel_types === void 0) { + Reflect.set(this, "channel_types", []); + } + this.channel_types.push(...channelTypesPredicate.parse(normalizeArray(channelTypes))); + return this; + } +}; + +// src/interactions/slashCommands/options/channel.ts +var SlashCommandChannelOption = class extends ApplicationCommandOptionBase { + /** + * The type of this option. + */ + type = import_v1035.ApplicationCommandOptionType.Channel; + /** + * {@inheritDoc ApplicationCommandOptionBase.toJSON} + */ + toJSON() { + this.runRequiredValidations(); + return { ...this }; + } +}; +__name(SlashCommandChannelOption, "SlashCommandChannelOption"); +SlashCommandChannelOption = __decorateClass([ + (0, import_ts_mixer.mix)(ApplicationCommandOptionChannelTypesMixin) +], SlashCommandChannelOption); + +// src/interactions/slashCommands/options/integer.ts +var import_shapeshift14 = require("@sapphire/shapeshift"); +var import_v1037 = require("discord-api-types/v10"); +var import_ts_mixer2 = require("ts-mixer"); + +// src/interactions/slashCommands/mixins/ApplicationCommandNumericOptionMinMaxValueMixin.ts +var ApplicationCommandNumericOptionMinMaxValueMixin = class { + static { + __name(this, "ApplicationCommandNumericOptionMinMaxValueMixin"); + } + /** + * The maximum value of this option. + */ + max_value; + /** + * The minimum value of this option. + */ + min_value; +}; + +// src/interactions/slashCommands/mixins/ApplicationCommandOptionWithAutocompleteMixin.ts +var import_shapeshift12 = require("@sapphire/shapeshift"); +var booleanPredicate2 = import_shapeshift12.s.boolean(); +var ApplicationCommandOptionWithAutocompleteMixin = class { + static { + __name(this, "ApplicationCommandOptionWithAutocompleteMixin"); + } + /** + * Whether this option utilizes autocomplete. + */ + autocomplete; + /** + * The type of this option. + * + * @privateRemarks Since this is present and this is a mixin, this is needed. + */ + type; + /** + * Whether this option uses autocomplete. + * + * @param autocomplete - Whether this option should use autocomplete + */ + setAutocomplete(autocomplete) { + booleanPredicate2.parse(autocomplete); + if (autocomplete && "choices" in this && Array.isArray(this.choices) && this.choices.length > 0) { + throw new RangeError("Autocomplete and choices are mutually exclusive to each other."); + } + Reflect.set(this, "autocomplete", autocomplete); + return this; + } +}; + +// src/interactions/slashCommands/mixins/ApplicationCommandOptionWithChoicesMixin.ts +var import_shapeshift13 = require("@sapphire/shapeshift"); +var import_v1036 = require("discord-api-types/v10"); +var stringPredicate = import_shapeshift13.s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(100); +var numberPredicate = import_shapeshift13.s.number().greaterThan(Number.NEGATIVE_INFINITY).lessThan(Number.POSITIVE_INFINITY); +var choicesPredicate = import_shapeshift13.s.object({ + name: stringPredicate, + name_localizations: localizationMapPredicate, + value: import_shapeshift13.s.union([stringPredicate, numberPredicate]) +}).array(); +var ApplicationCommandOptionWithChoicesMixin = class { + static { + __name(this, "ApplicationCommandOptionWithChoicesMixin"); + } + /** + * The choices of this option. + */ + choices; + /** + * The type of this option. + * + * @privateRemarks Since this is present and this is a mixin, this is needed. + */ + type; + /** + * Adds multiple choices to this option. + * + * @param choices - The choices to add + */ + addChoices(...choices) { + const normalizedChoices = normalizeArray(choices); + if (normalizedChoices.length > 0 && "autocomplete" in this && this.autocomplete) { + throw new RangeError("Autocomplete and choices are mutually exclusive to each other."); + } + choicesPredicate.parse(normalizedChoices); + if (this.choices === void 0) { + Reflect.set(this, "choices", []); + } + validateChoicesLength(normalizedChoices.length, this.choices); + for (const { name, name_localizations, value } of normalizedChoices) { + if (this.type === import_v1036.ApplicationCommandOptionType.String) { + stringPredicate.parse(value); + } else { + numberPredicate.parse(value); + } + this.choices.push({ name, name_localizations, value }); + } + return this; + } + /** + * Sets multiple choices for this option. + * + * @param choices - The choices to set + */ + setChoices(...choices) { + const normalizedChoices = normalizeArray(choices); + if (normalizedChoices.length > 0 && "autocomplete" in this && this.autocomplete) { + throw new RangeError("Autocomplete and choices are mutually exclusive to each other."); + } + choicesPredicate.parse(normalizedChoices); + Reflect.set(this, "choices", []); + this.addChoices(normalizedChoices); + return this; + } +}; + +// src/interactions/slashCommands/options/integer.ts +var numberValidator = import_shapeshift14.s.number().int(); +var SlashCommandIntegerOption = class extends ApplicationCommandOptionBase { + /** + * The type of this option. + */ + type = import_v1037.ApplicationCommandOptionType.Integer; + /** + * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMaxValue} + */ + setMaxValue(max) { + numberValidator.parse(max); + Reflect.set(this, "max_value", max); + return this; + } + /** + * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMinValue} + */ + setMinValue(min) { + numberValidator.parse(min); + Reflect.set(this, "min_value", min); + return this; + } + /** + * {@inheritDoc ApplicationCommandOptionBase.toJSON} + */ + toJSON() { + this.runRequiredValidations(); + if (this.autocomplete && Array.isArray(this.choices) && this.choices.length > 0) { + throw new RangeError("Autocomplete and choices are mutually exclusive to each other."); + } + return { ...this }; + } +}; +__name(SlashCommandIntegerOption, "SlashCommandIntegerOption"); +SlashCommandIntegerOption = __decorateClass([ + (0, import_ts_mixer2.mix)( + ApplicationCommandNumericOptionMinMaxValueMixin, + ApplicationCommandOptionWithAutocompleteMixin, + ApplicationCommandOptionWithChoicesMixin + ) +], SlashCommandIntegerOption); + +// src/interactions/slashCommands/options/mentionable.ts +var import_v1038 = require("discord-api-types/v10"); +var SlashCommandMentionableOption = class extends ApplicationCommandOptionBase { + static { + __name(this, "SlashCommandMentionableOption"); + } + /** + * The type of this option. + */ + type = import_v1038.ApplicationCommandOptionType.Mentionable; + /** + * {@inheritDoc ApplicationCommandOptionBase.toJSON} + */ + toJSON() { + this.runRequiredValidations(); + return { ...this }; + } +}; + +// src/interactions/slashCommands/options/number.ts +var import_shapeshift15 = require("@sapphire/shapeshift"); +var import_v1039 = require("discord-api-types/v10"); +var import_ts_mixer3 = require("ts-mixer"); +var numberValidator2 = import_shapeshift15.s.number(); +var SlashCommandNumberOption = class extends ApplicationCommandOptionBase { + /** + * The type of this option. + */ + type = import_v1039.ApplicationCommandOptionType.Number; + /** + * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMaxValue} + */ + setMaxValue(max) { + numberValidator2.parse(max); + Reflect.set(this, "max_value", max); + return this; + } + /** + * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMinValue} + */ + setMinValue(min) { + numberValidator2.parse(min); + Reflect.set(this, "min_value", min); + return this; + } + /** + * {@inheritDoc ApplicationCommandOptionBase.toJSON} + */ + toJSON() { + this.runRequiredValidations(); + if (this.autocomplete && Array.isArray(this.choices) && this.choices.length > 0) { + throw new RangeError("Autocomplete and choices are mutually exclusive to each other."); + } + return { ...this }; + } +}; +__name(SlashCommandNumberOption, "SlashCommandNumberOption"); +SlashCommandNumberOption = __decorateClass([ + (0, import_ts_mixer3.mix)( + ApplicationCommandNumericOptionMinMaxValueMixin, + ApplicationCommandOptionWithAutocompleteMixin, + ApplicationCommandOptionWithChoicesMixin + ) +], SlashCommandNumberOption); + +// src/interactions/slashCommands/options/role.ts +var import_v1040 = require("discord-api-types/v10"); +var SlashCommandRoleOption = class extends ApplicationCommandOptionBase { + static { + __name(this, "SlashCommandRoleOption"); + } + /** + * The type of this option. + */ + type = import_v1040.ApplicationCommandOptionType.Role; + /** + * {@inheritDoc ApplicationCommandOptionBase.toJSON} + */ + toJSON() { + this.runRequiredValidations(); + return { ...this }; + } +}; + +// src/interactions/slashCommands/options/string.ts +var import_shapeshift16 = require("@sapphire/shapeshift"); +var import_v1041 = require("discord-api-types/v10"); +var import_ts_mixer4 = require("ts-mixer"); +var minLengthValidator2 = import_shapeshift16.s.number().greaterThanOrEqual(0).lessThanOrEqual(6e3); +var maxLengthValidator2 = import_shapeshift16.s.number().greaterThanOrEqual(1).lessThanOrEqual(6e3); +var SlashCommandStringOption = class extends ApplicationCommandOptionBase { + /** + * The type of this option. + */ + type = import_v1041.ApplicationCommandOptionType.String; + /** + * The maximum length of this option. + */ + max_length; + /** + * The minimum length of this option. + */ + min_length; + /** + * Sets the maximum length of this string option. + * + * @param max - The maximum length this option can be + */ + setMaxLength(max) { + maxLengthValidator2.parse(max); + Reflect.set(this, "max_length", max); + return this; + } + /** + * Sets the minimum length of this string option. + * + * @param min - The minimum length this option can be + */ + setMinLength(min) { + minLengthValidator2.parse(min); + Reflect.set(this, "min_length", min); + return this; + } + /** + * {@inheritDoc ApplicationCommandOptionBase.toJSON} + */ + toJSON() { + this.runRequiredValidations(); + if (this.autocomplete && Array.isArray(this.choices) && this.choices.length > 0) { + throw new RangeError("Autocomplete and choices are mutually exclusive to each other."); + } + return { ...this }; + } +}; +__name(SlashCommandStringOption, "SlashCommandStringOption"); +SlashCommandStringOption = __decorateClass([ + (0, import_ts_mixer4.mix)(ApplicationCommandOptionWithAutocompleteMixin, ApplicationCommandOptionWithChoicesMixin) +], SlashCommandStringOption); + +// src/interactions/slashCommands/options/user.ts +var import_v1042 = require("discord-api-types/v10"); +var SlashCommandUserOption = class extends ApplicationCommandOptionBase { + static { + __name(this, "SlashCommandUserOption"); + } + /** + * The type of this option. + */ + type = import_v1042.ApplicationCommandOptionType.User; + /** + * {@inheritDoc ApplicationCommandOptionBase.toJSON} + */ + toJSON() { + this.runRequiredValidations(); + return { ...this }; + } +}; + +// src/interactions/slashCommands/mixins/SharedSlashCommandOptions.ts +var SharedSlashCommandOptions = class { + static { + __name(this, "SharedSlashCommandOptions"); + } + options; + /** + * Adds a boolean option. + * + * @param input - A function that returns an option builder or an already built builder + */ + addBooleanOption(input) { + return this._sharedAddOptionMethod(input, SlashCommandBooleanOption); + } + /** + * Adds a user option. + * + * @param input - A function that returns an option builder or an already built builder + */ + addUserOption(input) { + return this._sharedAddOptionMethod(input, SlashCommandUserOption); + } + /** + * Adds a channel option. + * + * @param input - A function that returns an option builder or an already built builder + */ + addChannelOption(input) { + return this._sharedAddOptionMethod(input, SlashCommandChannelOption); + } + /** + * Adds a role option. + * + * @param input - A function that returns an option builder or an already built builder + */ + addRoleOption(input) { + return this._sharedAddOptionMethod(input, SlashCommandRoleOption); + } + /** + * Adds an attachment option. + * + * @param input - A function that returns an option builder or an already built builder + */ + addAttachmentOption(input) { + return this._sharedAddOptionMethod(input, SlashCommandAttachmentOption); + } + /** + * Adds a mentionable option. + * + * @param input - A function that returns an option builder or an already built builder + */ + addMentionableOption(input) { + return this._sharedAddOptionMethod(input, SlashCommandMentionableOption); + } + /** + * Adds a string option. + * + * @param input - A function that returns an option builder or an already built builder + */ + addStringOption(input) { + return this._sharedAddOptionMethod(input, SlashCommandStringOption); + } + /** + * Adds an integer option. + * + * @param input - A function that returns an option builder or an already built builder + */ + addIntegerOption(input) { + return this._sharedAddOptionMethod(input, SlashCommandIntegerOption); + } + /** + * Adds a number option. + * + * @param input - A function that returns an option builder or an already built builder + */ + addNumberOption(input) { + return this._sharedAddOptionMethod(input, SlashCommandNumberOption); + } + /** + * Where the actual adding magic happens. ✨ + * + * @param input - The input. What else? + * @param Instance - The instance of whatever is being added + * @internal + */ + _sharedAddOptionMethod(input, Instance) { + const { options } = this; + validateMaxOptionsLength(options); + const result = typeof input === "function" ? input(new Instance()) : input; + assertReturnOfBuilder2(result, Instance); + options.push(result); + return this; + } +}; + +// src/interactions/slashCommands/SlashCommandSubcommands.ts +var import_v1043 = require("discord-api-types/v10"); +var import_ts_mixer5 = require("ts-mixer"); +var SlashCommandSubcommandGroupBuilder = class { + /** + * The name of this subcommand group. + */ + name = void 0; + /** + * The description of this subcommand group. + */ + description = void 0; + /** + * The subcommands within this subcommand group. + */ + options = []; + /** + * Adds a new subcommand to this group. + * + * @param input - A function that returns a subcommand builder or an already built builder + */ + addSubcommand(input) { + const { options } = this; + validateMaxOptionsLength(options); + const result = typeof input === "function" ? input(new SlashCommandSubcommandBuilder()) : input; + assertReturnOfBuilder2(result, SlashCommandSubcommandBuilder); + options.push(result); + return this; + } + /** + * Serializes this builder to API-compatible JSON data. + * + * @remarks + * This method runs validations on the data before serializing it. + * As such, it may throw an error if the data is invalid. + */ + toJSON() { + validateRequiredParameters3(this.name, this.description, this.options); + return { + type: import_v1043.ApplicationCommandOptionType.SubcommandGroup, + name: this.name, + name_localizations: this.name_localizations, + description: this.description, + description_localizations: this.description_localizations, + options: this.options.map((option) => option.toJSON()) + }; + } +}; +__name(SlashCommandSubcommandGroupBuilder, "SlashCommandSubcommandGroupBuilder"); +SlashCommandSubcommandGroupBuilder = __decorateClass([ + (0, import_ts_mixer5.mix)(SharedNameAndDescription) +], SlashCommandSubcommandGroupBuilder); +var SlashCommandSubcommandBuilder = class { + /** + * The name of this subcommand. + */ + name = void 0; + /** + * The description of this subcommand. + */ + description = void 0; + /** + * The options within this subcommand. + */ + options = []; + /** + * Serializes this builder to API-compatible JSON data. + * + * @remarks + * This method runs validations on the data before serializing it. + * As such, it may throw an error if the data is invalid. + */ + toJSON() { + validateRequiredParameters3(this.name, this.description, this.options); + return { + type: import_v1043.ApplicationCommandOptionType.Subcommand, + name: this.name, + name_localizations: this.name_localizations, + description: this.description, + description_localizations: this.description_localizations, + options: this.options.map((option) => option.toJSON()) + }; + } +}; +__name(SlashCommandSubcommandBuilder, "SlashCommandSubcommandBuilder"); +SlashCommandSubcommandBuilder = __decorateClass([ + (0, import_ts_mixer5.mix)(SharedNameAndDescription, SharedSlashCommandOptions) +], SlashCommandSubcommandBuilder); + +// src/interactions/slashCommands/mixins/SharedSubcommands.ts +var SharedSlashCommandSubcommands = class { + static { + __name(this, "SharedSlashCommandSubcommands"); + } + options = []; + /** + * Adds a new subcommand group to this command. + * + * @param input - A function that returns a subcommand group builder or an already built builder + */ + addSubcommandGroup(input) { + const { options } = this; + validateMaxOptionsLength(options); + const result = typeof input === "function" ? input(new SlashCommandSubcommandGroupBuilder()) : input; + assertReturnOfBuilder2(result, SlashCommandSubcommandGroupBuilder); + options.push(result); + return this; + } + /** + * Adds a new subcommand to this command. + * + * @param input - A function that returns a subcommand builder or an already built builder + */ + addSubcommand(input) { + const { options } = this; + validateMaxOptionsLength(options); + const result = typeof input === "function" ? input(new SlashCommandSubcommandBuilder()) : input; + assertReturnOfBuilder2(result, SlashCommandSubcommandBuilder); + options.push(result); + return this; + } +}; + +// src/interactions/slashCommands/SlashCommandBuilder.ts +var SlashCommandBuilder = class { + /** + * The name of this command. + */ + name = void 0; + /** + * The name localizations of this command. + */ + name_localizations; + /** + * The description of this command. + */ + description = void 0; + /** + * The description localizations of this command. + */ + description_localizations; + /** + * The options of this command. + */ + options = []; + /** + * The contexts for this command. + */ + contexts; + /** + * Whether this command is enabled by default when the application is added to a guild. + * + * @deprecated Use {@link SharedSlashCommand.setDefaultMemberPermissions} or {@link SharedSlashCommand.setDMPermission} instead. + */ + default_permission = void 0; + /** + * The set of permissions represented as a bit set for the command. + */ + default_member_permissions = void 0; + /** + * Indicates whether the command is available in direct messages with the application. + * + * @remarks + * By default, commands are visible. This property is only for global commands. + * @deprecated + * Use {@link SlashCommandBuilder.contexts} instead. + */ + dm_permission = void 0; + /** + * The integration types for this command. + */ + integration_types; + /** + * Whether this command is NSFW. + */ + nsfw = void 0; +}; +__name(SlashCommandBuilder, "SlashCommandBuilder"); +SlashCommandBuilder = __decorateClass([ + (0, import_ts_mixer6.mix)(SharedSlashCommandOptions, SharedNameAndDescription, SharedSlashCommandSubcommands, SharedSlashCommand) +], SlashCommandBuilder); + +// src/interactions/contextMenuCommands/Assertions.ts +var Assertions_exports11 = {}; +__export(Assertions_exports11, { + contextsPredicate: () => contextsPredicate2, + integrationTypesPredicate: () => integrationTypesPredicate2, + validateDMPermission: () => validateDMPermission2, + validateDefaultMemberPermissions: () => validateDefaultMemberPermissions2, + validateDefaultPermission: () => validateDefaultPermission2, + validateName: () => validateName2, + validateRequiredParameters: () => validateRequiredParameters4, + validateType: () => validateType +}); +var import_shapeshift17 = require("@sapphire/shapeshift"); +var import_v1044 = require("discord-api-types/v10"); +var namePredicate2 = import_shapeshift17.s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(32).regex(/\S/).setValidationEnabled(isValidationEnabled); +var typePredicate = import_shapeshift17.s.union([import_shapeshift17.s.literal(import_v1044.ApplicationCommandType.User), import_shapeshift17.s.literal(import_v1044.ApplicationCommandType.Message)]).setValidationEnabled(isValidationEnabled); +var booleanPredicate3 = import_shapeshift17.s.boolean(); +function validateDefaultPermission2(value) { + booleanPredicate3.parse(value); +} +__name(validateDefaultPermission2, "validateDefaultPermission"); +function validateName2(name) { + namePredicate2.parse(name); +} +__name(validateName2, "validateName"); +function validateType(type) { + typePredicate.parse(type); +} +__name(validateType, "validateType"); +function validateRequiredParameters4(name, type) { + validateName2(name); + validateType(type); +} +__name(validateRequiredParameters4, "validateRequiredParameters"); +var dmPermissionPredicate2 = import_shapeshift17.s.boolean().nullish(); +function validateDMPermission2(value) { + dmPermissionPredicate2.parse(value); +} +__name(validateDMPermission2, "validateDMPermission"); +var memberPermissionPredicate2 = import_shapeshift17.s.union([ + import_shapeshift17.s.bigint().transform((value) => value.toString()), + import_shapeshift17.s.number().safeInt().transform((value) => value.toString()), + import_shapeshift17.s.string().regex(/^\d+$/) +]).nullish(); +function validateDefaultMemberPermissions2(permissions) { + return memberPermissionPredicate2.parse(permissions); +} +__name(validateDefaultMemberPermissions2, "validateDefaultMemberPermissions"); +var contextsPredicate2 = import_shapeshift17.s.array( + import_shapeshift17.s.nativeEnum(import_v1044.InteractionContextType).setValidationEnabled(isValidationEnabled) +); +var integrationTypesPredicate2 = import_shapeshift17.s.array( + import_shapeshift17.s.nativeEnum(import_v1044.ApplicationIntegrationType).setValidationEnabled(isValidationEnabled) +); + +// src/interactions/contextMenuCommands/ContextMenuCommandBuilder.ts +var ContextMenuCommandBuilder = class { + static { + __name(this, "ContextMenuCommandBuilder"); + } + /** + * The name of this command. + */ + name = void 0; + /** + * The name localizations of this command. + */ + name_localizations; + /** + * The type of this command. + */ + type = void 0; + /** + * The contexts for this command. + */ + contexts; + /** + * Whether this command is enabled by default when the application is added to a guild. + * + * @deprecated Use {@link ContextMenuCommandBuilder.setDefaultMemberPermissions} or {@link ContextMenuCommandBuilder.setDMPermission} instead. + */ + default_permission = void 0; + /** + * The set of permissions represented as a bit set for the command. + */ + default_member_permissions = void 0; + /** + * Indicates whether the command is available in direct messages with the application. + * + * @remarks + * By default, commands are visible. This property is only for global commands. + * @deprecated + * Use {@link ContextMenuCommandBuilder.contexts} instead. + */ + dm_permission = void 0; + /** + * The integration types for this command. + */ + integration_types; + /** + * Sets the contexts of this command. + * + * @param contexts - The contexts + */ + setContexts(...contexts) { + Reflect.set(this, "contexts", contextsPredicate2.parse(normalizeArray(contexts))); + return this; + } + /** + * Sets integration types of this command. + * + * @param integrationTypes - The integration types + */ + setIntegrationTypes(...integrationTypes) { + Reflect.set(this, "integration_types", integrationTypesPredicate2.parse(normalizeArray(integrationTypes))); + return this; + } + /** + * Sets the name of this command. + * + * @param name - The name to use + */ + setName(name) { + validateName2(name); + Reflect.set(this, "name", name); + return this; + } + /** + * Sets the type of this command. + * + * @param type - The type to use + */ + setType(type) { + validateType(type); + Reflect.set(this, "type", type); + return this; + } + /** + * Sets whether the command is enabled by default when the application is added to a guild. + * + * @remarks + * If set to `false`, you will have to later `PUT` the permissions for this command. + * @param value - Whether to enable this command by default + * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} + * @deprecated Use {@link ContextMenuCommandBuilder.setDefaultMemberPermissions} or {@link ContextMenuCommandBuilder.setDMPermission} instead. + */ + setDefaultPermission(value) { + validateDefaultPermission2(value); + Reflect.set(this, "default_permission", value); + return this; + } + /** + * Sets the default permissions a member should have in order to run this command. + * + * @remarks + * You can set this to `'0'` to disable the command by default. + * @param permissions - The permissions bit field to set + * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} + */ + setDefaultMemberPermissions(permissions) { + const permissionValue = validateDefaultMemberPermissions2(permissions); + Reflect.set(this, "default_member_permissions", permissionValue); + return this; + } + /** + * Sets if the command is available in direct messages with the application. + * + * @remarks + * By default, commands are visible. This method is only for global commands. + * @param enabled - Whether the command should be enabled in direct messages + * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} + * @deprecated Use {@link ContextMenuCommandBuilder.setContexts} instead. + */ + setDMPermission(enabled) { + validateDMPermission2(enabled); + Reflect.set(this, "dm_permission", enabled); + return this; + } + /** + * Sets a name localization for this command. + * + * @param locale - The locale to set + * @param localizedName - The localized name for the given `locale` + */ + setNameLocalization(locale, localizedName) { + if (!this.name_localizations) { + Reflect.set(this, "name_localizations", {}); + } + const parsedLocale = validateLocale(locale); + if (localizedName === null) { + this.name_localizations[parsedLocale] = null; + return this; + } + validateName2(localizedName); + this.name_localizations[parsedLocale] = localizedName; + return this; + } + /** + * Sets the name localizations for this command. + * + * @param localizedNames - The object of localized names to set + */ + setNameLocalizations(localizedNames) { + if (localizedNames === null) { + Reflect.set(this, "name_localizations", null); + return this; + } + Reflect.set(this, "name_localizations", {}); + for (const args of Object.entries(localizedNames)) + this.setNameLocalization(...args); + return this; + } + /** + * Serializes this builder to API-compatible JSON data. + * + * @remarks + * This method runs validations on the data before serializing it. + * As such, it may throw an error if the data is invalid. + */ + toJSON() { + validateRequiredParameters4(this.name, this.type); + validateLocalizationMap(this.name_localizations); + return { ...this }; + } +}; + +// src/util/componentUtil.ts +function embedLength(data) { + return (data.title?.length ?? 0) + (data.description?.length ?? 0) + (data.fields?.reduce((prev, curr) => prev + curr.name.length + curr.value.length, 0) ?? 0) + (data.footer?.text.length ?? 0) + (data.author?.name.length ?? 0); +} +__name(embedLength, "embedLength"); + +// src/index.ts +var version = "1.14.1"; +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + ActionRowBuilder, + ApplicationCommandNumericOptionMinMaxValueMixin, + ApplicationCommandOptionBase, + ApplicationCommandOptionChannelTypesMixin, + ApplicationCommandOptionWithAutocompleteMixin, + ApplicationCommandOptionWithChoicesMixin, + BaseSelectMenuBuilder, + ButtonBuilder, + ChannelSelectMenuBuilder, + CheckboxAssertions, + CheckboxBuilder, + CheckboxGroupBuilder, + CheckboxGroupOptionBuilder, + ComponentAssertions, + ComponentBuilder, + ComponentsV2Assertions, + ContainerBuilder, + ContextMenuCommandAssertions, + ContextMenuCommandBuilder, + EmbedAssertions, + EmbedBuilder, + FileBuilder, + FileUploadAssertions, + FileUploadBuilder, + LabelAssertions, + LabelBuilder, + MediaGalleryBuilder, + MediaGalleryItemBuilder, + MentionableSelectMenuBuilder, + ModalAssertions, + ModalBuilder, + RadioGroupBuilder, + RadioGroupOptionBuilder, + RoleSelectMenuBuilder, + SectionBuilder, + SelectMenuAssertions, + SelectMenuBuilder, + SelectMenuOptionBuilder, + SeparatorBuilder, + SharedNameAndDescription, + SharedSlashCommand, + SharedSlashCommandOptions, + SharedSlashCommandSubcommands, + SlashCommandAssertions, + SlashCommandAttachmentOption, + SlashCommandBooleanOption, + SlashCommandBuilder, + SlashCommandChannelOption, + SlashCommandIntegerOption, + SlashCommandMentionableOption, + SlashCommandNumberOption, + SlashCommandRoleOption, + SlashCommandStringOption, + SlashCommandSubcommandBuilder, + SlashCommandSubcommandGroupBuilder, + SlashCommandUserOption, + StringSelectMenuBuilder, + StringSelectMenuOptionBuilder, + TextDisplayBuilder, + TextInputAssertions, + TextInputBuilder, + ThumbnailBuilder, + UserSelectMenuBuilder, + createComponentBuilder, + disableValidators, + embedLength, + enableValidators, + isValidationEnabled, + normalizeArray, + resolveBuilder, + version, + ...require("@discordjs/formatters") +}); +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/@discordjs/builders/dist/index.js.map b/node_modules/@discordjs/builders/dist/index.js.map new file mode 100644 index 0000000..babd535 --- /dev/null +++ b/node_modules/@discordjs/builders/dist/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/index.ts","../src/messages/embed/Assertions.ts","../src/util/validation.ts","../src/util/normalizeArray.ts","../src/messages/embed/Embed.ts","../src/components/Assertions.ts","../src/components/selectMenu/StringSelectMenuOption.ts","../src/components/ActionRow.ts","../src/components/Component.ts","../src/components/Components.ts","../src/components/button/Button.ts","../src/components/checkbox/Checkbox.ts","../src/components/checkbox/Assertions.ts","../src/components/checkbox/CheckboxGroup.ts","../src/components/checkbox/CheckboxGroupOption.ts","../src/components/checkbox/RadioGroup.ts","../src/components/checkbox/RadioGroupOption.ts","../src/components/fileUpload/FileUpload.ts","../src/components/fileUpload/Assertions.ts","../src/components/label/Label.ts","../src/components/selectMenu/ChannelSelectMenu.ts","../src/components/textInput/Assertions.ts","../src/components/selectMenu/BaseSelectMenu.ts","../src/components/selectMenu/MentionableSelectMenu.ts","../src/components/selectMenu/RoleSelectMenu.ts","../src/components/selectMenu/StringSelectMenu.ts","../src/components/selectMenu/Assertions.ts","../src/components/selectMenu/UserSelectMenu.ts","../src/components/textInput/TextInput.ts","../src/components/label/Assertions.ts","../src/components/v2/Container.ts","../src/components/v2/Assertions.ts","../src/components/v2/Thumbnail.ts","../src/components/v2/File.ts","../src/components/v2/Separator.ts","../src/components/v2/TextDisplay.ts","../src/components/v2/MediaGallery.ts","../src/components/v2/MediaGalleryItem.ts","../src/components/v2/Section.ts","../src/interactions/modals/Modal.ts","../src/interactions/modals/Assertions.ts","../src/interactions/slashCommands/Assertions.ts","../src/interactions/slashCommands/SlashCommandBuilder.ts","../src/interactions/slashCommands/mixins/NameAndDescription.ts","../src/interactions/slashCommands/mixins/SharedSlashCommand.ts","../src/interactions/slashCommands/options/attachment.ts","../src/interactions/slashCommands/mixins/ApplicationCommandOptionBase.ts","../src/interactions/slashCommands/options/boolean.ts","../src/interactions/slashCommands/options/channel.ts","../src/interactions/slashCommands/mixins/ApplicationCommandOptionChannelTypesMixin.ts","../src/interactions/slashCommands/options/integer.ts","../src/interactions/slashCommands/mixins/ApplicationCommandNumericOptionMinMaxValueMixin.ts","../src/interactions/slashCommands/mixins/ApplicationCommandOptionWithAutocompleteMixin.ts","../src/interactions/slashCommands/mixins/ApplicationCommandOptionWithChoicesMixin.ts","../src/interactions/slashCommands/options/mentionable.ts","../src/interactions/slashCommands/options/number.ts","../src/interactions/slashCommands/options/role.ts","../src/interactions/slashCommands/options/string.ts","../src/interactions/slashCommands/options/user.ts","../src/interactions/slashCommands/mixins/SharedSlashCommandOptions.ts","../src/interactions/slashCommands/SlashCommandSubcommands.ts","../src/interactions/slashCommands/mixins/SharedSubcommands.ts","../src/interactions/contextMenuCommands/Assertions.ts","../src/interactions/contextMenuCommands/ContextMenuCommandBuilder.ts","../src/util/componentUtil.ts"],"sourcesContent":["export * as EmbedAssertions from './messages/embed/Assertions.js';\nexport * from './messages/embed/Embed.js';\n// TODO: Consider removing this dep in the next major version\nexport * from '@discordjs/formatters';\n\nexport * as ComponentAssertions from './components/Assertions.js';\nexport * from './components/ActionRow.js';\nexport * from './components/button/Button.js';\nexport * from './components/Component.js';\nexport * from './components/Components.js';\nexport * from './components/textInput/TextInput.js';\nexport * as TextInputAssertions from './components/textInput/Assertions.js';\nexport * from './interactions/modals/Modal.js';\nexport * as ModalAssertions from './interactions/modals/Assertions.js';\n\nexport * from './components/selectMenu/BaseSelectMenu.js';\nexport * from './components/selectMenu/ChannelSelectMenu.js';\nexport * from './components/selectMenu/MentionableSelectMenu.js';\nexport * from './components/selectMenu/RoleSelectMenu.js';\nexport * from './components/selectMenu/StringSelectMenu.js';\n// TODO: Remove those aliases in v2\nexport {\n\t/**\n\t * @deprecated Will be removed in the next major version, use {@link StringSelectMenuBuilder} instead.\n\t */\n\tStringSelectMenuBuilder as SelectMenuBuilder,\n} from './components/selectMenu/StringSelectMenu.js';\nexport {\n\t/**\n\t * @deprecated Will be removed in the next major version, use {@link StringSelectMenuOptionBuilder} instead.\n\t */\n\tStringSelectMenuOptionBuilder as SelectMenuOptionBuilder,\n} from './components/selectMenu/StringSelectMenuOption.js';\nexport * as SelectMenuAssertions from './components/selectMenu/Assertions.js';\nexport * from './components/selectMenu/StringSelectMenuOption.js';\nexport * from './components/selectMenu/UserSelectMenu.js';\n\nexport * from './components/fileUpload/FileUpload.js';\nexport * as FileUploadAssertions from './components/fileUpload/Assertions.js';\n\nexport * from './components/label/Label.js';\nexport * as LabelAssertions from './components/label/Assertions.js';\n\nexport * as ComponentsV2Assertions from './components/v2/Assertions.js';\nexport * from './components/v2/Container.js';\nexport * from './components/v2/File.js';\nexport * from './components/v2/MediaGallery.js';\nexport * from './components/v2/MediaGalleryItem.js';\nexport * from './components/v2/Section.js';\nexport * from './components/v2/Separator.js';\nexport * from './components/v2/TextDisplay.js';\nexport * from './components/v2/Thumbnail.js';\n\nexport * from './components/checkbox/Checkbox.js';\nexport * from './components/checkbox/CheckboxGroup.js';\nexport * from './components/checkbox/CheckboxGroupOption.js';\nexport * from './components/checkbox/RadioGroup.js';\nexport * from './components/checkbox/RadioGroupOption.js';\nexport * as CheckboxAssertions from './components/checkbox/Assertions.js';\n\nexport * as SlashCommandAssertions from './interactions/slashCommands/Assertions.js';\nexport * from './interactions/slashCommands/SlashCommandBuilder.js';\nexport * from './interactions/slashCommands/SlashCommandSubcommands.js';\nexport * from './interactions/slashCommands/options/boolean.js';\nexport * from './interactions/slashCommands/options/channel.js';\nexport * from './interactions/slashCommands/options/integer.js';\nexport * from './interactions/slashCommands/options/mentionable.js';\nexport * from './interactions/slashCommands/options/number.js';\nexport * from './interactions/slashCommands/options/role.js';\nexport * from './interactions/slashCommands/options/attachment.js';\nexport * from './interactions/slashCommands/options/string.js';\nexport * from './interactions/slashCommands/options/user.js';\nexport * from './interactions/slashCommands/mixins/ApplicationCommandNumericOptionMinMaxValueMixin.js';\nexport * from './interactions/slashCommands/mixins/ApplicationCommandOptionBase.js';\nexport * from './interactions/slashCommands/mixins/ApplicationCommandOptionChannelTypesMixin.js';\nexport * from './interactions/slashCommands/mixins/ApplicationCommandOptionWithAutocompleteMixin.js';\nexport * from './interactions/slashCommands/mixins/ApplicationCommandOptionWithChoicesMixin.js';\nexport * from './interactions/slashCommands/mixins/NameAndDescription.js';\nexport * from './interactions/slashCommands/mixins/SharedSlashCommandOptions.js';\nexport * from './interactions/slashCommands/mixins/SharedSubcommands.js';\nexport * from './interactions/slashCommands/mixins/SharedSlashCommand.js';\n\nexport * as ContextMenuCommandAssertions from './interactions/contextMenuCommands/Assertions.js';\nexport * from './interactions/contextMenuCommands/ContextMenuCommandBuilder.js';\n\nexport * from './util/componentUtil.js';\nexport * from './util/normalizeArray.js';\nexport * from './util/validation.js';\n\n/**\n * The {@link https://github.com/discordjs/discord.js/blob/main/packages/builders#readme | @discordjs/builders} version\n * that you are currently using.\n *\n * @privateRemarks This needs to explicitly be `string` so it is not typed as a \"const string\" that gets injected by esbuild.\n */\nexport const version = '1.14.1' as string;\n","import { s } from '@sapphire/shapeshift';\nimport type { APIEmbedField } from 'discord-api-types/v10';\nimport { isValidationEnabled } from '../../util/validation.js';\n\nexport const fieldNamePredicate = s.string().lengthLessThanOrEqual(256).setValidationEnabled(isValidationEnabled);\n\nexport const fieldValuePredicate = s.string().lengthLessThanOrEqual(1_024).setValidationEnabled(isValidationEnabled);\n\nexport const fieldInlinePredicate = s.boolean().optional();\n\nexport const embedFieldPredicate = s\n\t.object({\n\t\tname: fieldNamePredicate,\n\t\tvalue: fieldValuePredicate,\n\t\tinline: fieldInlinePredicate,\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const embedFieldsArrayPredicate = embedFieldPredicate.array().setValidationEnabled(isValidationEnabled);\n\nexport const fieldLengthPredicate = s.number().lessThanOrEqual(25).setValidationEnabled(isValidationEnabled);\n\nexport function validateFieldLength(amountAdding: number, fields?: APIEmbedField[]): void {\n\tfieldLengthPredicate.parse((fields?.length ?? 0) + amountAdding);\n}\n\nexport const authorNamePredicate = fieldNamePredicate\n\t.lengthGreaterThanOrEqual(1)\n\t.nullable()\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const imageURLPredicate = s\n\t.string()\n\t.url({\n\t\tallowedProtocols: ['http:', 'https:', 'attachment:'],\n\t})\n\t.nullish()\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const urlPredicate = s\n\t.string()\n\t.url({\n\t\tallowedProtocols: ['http:', 'https:'],\n\t})\n\t.nullish()\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const embedAuthorPredicate = s\n\t.object({\n\t\tname: authorNamePredicate,\n\t\ticonURL: imageURLPredicate,\n\t\turl: urlPredicate,\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const RGBPredicate = s\n\t.number()\n\t.int()\n\t.greaterThanOrEqual(0)\n\t.lessThanOrEqual(255)\n\t.setValidationEnabled(isValidationEnabled);\nexport const colorPredicate = s\n\t.number()\n\t.int()\n\t.greaterThanOrEqual(0)\n\t.lessThanOrEqual(0xffffff)\n\t.or(s.tuple([RGBPredicate, RGBPredicate, RGBPredicate]))\n\t.nullable()\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const descriptionPredicate = s\n\t.string()\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(4_096)\n\t.nullable()\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const footerTextPredicate = s\n\t.string()\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(2_048)\n\t.nullable()\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const embedFooterPredicate = s\n\t.object({\n\t\ttext: footerTextPredicate,\n\t\ticonURL: imageURLPredicate,\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const timestampPredicate = s.union([s.number(), s.date()]).nullable().setValidationEnabled(isValidationEnabled);\n\nexport const titlePredicate = fieldNamePredicate\n\t.lengthGreaterThanOrEqual(1)\n\t.nullable()\n\t.setValidationEnabled(isValidationEnabled);\n","let validate = true;\n\n/**\n * Enables validators.\n *\n * @returns Whether validation is occurring.\n */\nexport function enableValidators() {\n\treturn (validate = true);\n}\n\n/**\n * Disables validators.\n *\n * @returns Whether validation is occurring.\n */\nexport function disableValidators() {\n\treturn (validate = false);\n}\n\n/**\n * Checks whether validation is occurring.\n */\nexport function isValidationEnabled() {\n\treturn validate;\n}\n","/**\n * Normalizes data that is a rest parameter or an array into an array with a depth of 1.\n *\n * @typeParam ItemType - The data that must satisfy {@link RestOrArray}.\n * @param arr - The (possibly variadic) data to normalize\n */\nexport function normalizeArray(arr: RestOrArray): ItemType[] {\n\tif (Array.isArray(arr[0])) return [...arr[0]];\n\treturn arr as ItemType[];\n}\n\n/**\n * Represents data that may be an array or came from a rest parameter.\n *\n * @remarks\n * This type is used throughout builders to ensure both an array and variadic arguments\n * may be used. It is normalized with {@link normalizeArray}.\n */\nexport type RestOrArray = Type[] | [Type[]];\n","import type { APIEmbed, APIEmbedAuthor, APIEmbedField, APIEmbedFooter, APIEmbedImage } from 'discord-api-types/v10';\nimport { normalizeArray, type RestOrArray } from '../../util/normalizeArray.js';\nimport {\n\tcolorPredicate,\n\tdescriptionPredicate,\n\tembedAuthorPredicate,\n\tembedFieldsArrayPredicate,\n\tembedFooterPredicate,\n\timageURLPredicate,\n\ttimestampPredicate,\n\ttitlePredicate,\n\turlPredicate,\n\tvalidateFieldLength,\n} from './Assertions.js';\n\n/**\n * A tuple satisfying the RGB color model.\n *\n * @see {@link https://developer.mozilla.org/docs/Glossary/RGB}\n */\nexport type RGBTuple = [red: number, green: number, blue: number];\n\n/**\n * The base icon data typically used in payloads.\n */\nexport interface IconData {\n\t/**\n\t * The URL of the icon.\n\t */\n\ticonURL?: string;\n\t/**\n\t * The proxy URL of the icon.\n\t */\n\tproxyIconURL?: string;\n}\n\n/**\n * Represents the author data of an embed.\n */\nexport interface EmbedAuthorData extends IconData, Omit {}\n\n/**\n * Represents the author options of an embed.\n */\nexport interface EmbedAuthorOptions extends Omit {}\n\n/**\n * Represents the footer data of an embed.\n */\nexport interface EmbedFooterData extends IconData, Omit {}\n\n/**\n * Represents the footer options of an embed.\n */\nexport interface EmbedFooterOptions extends Omit {}\n\n/**\n * Represents the image data of an embed.\n */\nexport interface EmbedImageData extends Omit {\n\t/**\n\t * The proxy URL for the image.\n\t */\n\tproxyURL?: string;\n}\n\n/**\n * A builder that creates API-compatible JSON data for embeds.\n */\nexport class EmbedBuilder {\n\t/**\n\t * The API data associated with this embed.\n\t */\n\tpublic readonly data: APIEmbed;\n\n\t/**\n\t * Creates a new embed from API data.\n\t *\n\t * @param data - The API data to create this embed with\n\t */\n\tpublic constructor(data: APIEmbed = {}) {\n\t\tthis.data = { ...data };\n\t\tif (data.timestamp) this.data.timestamp = new Date(data.timestamp).toISOString();\n\t}\n\n\t/**\n\t * Appends fields to the embed.\n\t *\n\t * @remarks\n\t * This method accepts either an array of fields or a variable number of field parameters.\n\t * The maximum amount of fields that can be added is 25.\n\t * @example\n\t * Using an array:\n\t * ```ts\n\t * const fields: APIEmbedField[] = ...;\n\t * const embed = new EmbedBuilder()\n\t * \t.addFields(fields);\n\t * ```\n\t * @example\n\t * Using rest parameters (variadic):\n\t * ```ts\n\t * const embed = new EmbedBuilder()\n\t * \t.addFields(\n\t * \t\t{ name: 'Field 1', value: 'Value 1' },\n\t * \t\t{ name: 'Field 2', value: 'Value 2' },\n\t * \t);\n\t * ```\n\t * @param fields - The fields to add\n\t */\n\tpublic addFields(...fields: RestOrArray): this {\n\t\tconst normalizedFields = normalizeArray(fields);\n\t\t// Ensure adding these fields won't exceed the 25 field limit\n\t\tvalidateFieldLength(normalizedFields.length, this.data.fields);\n\n\t\t// Data assertions\n\t\tembedFieldsArrayPredicate.parse(normalizedFields);\n\n\t\tif (this.data.fields) this.data.fields.push(...normalizedFields);\n\t\telse this.data.fields = normalizedFields;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Removes, replaces, or inserts fields for this embed.\n\t *\n\t * @remarks\n\t * This method behaves similarly\n\t * to {@link https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/splice | Array.prototype.splice()}.\n\t * The maximum amount of fields that can be added is 25.\n\t *\n\t * It's useful for modifying and adjusting order of the already-existing fields of an embed.\n\t * @example\n\t * Remove the first field:\n\t * ```ts\n\t * embed.spliceFields(0, 1);\n\t * ```\n\t * @example\n\t * Remove the first n fields:\n\t * ```ts\n\t * const n = 4;\n\t * embed.spliceFields(0, n);\n\t * ```\n\t * @example\n\t * Remove the last field:\n\t * ```ts\n\t * embed.spliceFields(-1, 1);\n\t * ```\n\t * @param index - The index to start at\n\t * @param deleteCount - The number of fields to remove\n\t * @param fields - The replacing field objects\n\t */\n\tpublic spliceFields(index: number, deleteCount: number, ...fields: APIEmbedField[]): this {\n\t\t// Ensure adding these fields won't exceed the 25 field limit\n\t\tvalidateFieldLength(fields.length - deleteCount, this.data.fields);\n\n\t\t// Data assertions\n\t\tembedFieldsArrayPredicate.parse(fields);\n\t\tif (this.data.fields) this.data.fields.splice(index, deleteCount, ...fields);\n\t\telse this.data.fields = fields;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the fields for this embed.\n\t *\n\t * @remarks\n\t * This method is an alias for {@link EmbedBuilder.spliceFields}. More specifically,\n\t * it splices the entire array of fields, replacing them with the provided fields.\n\t *\n\t * You can set a maximum of 25 fields.\n\t * @param fields - The fields to set\n\t */\n\tpublic setFields(...fields: RestOrArray): this {\n\t\tthis.spliceFields(0, this.data.fields?.length ?? 0, ...normalizeArray(fields));\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the author of this embed.\n\t *\n\t * @param options - The options to use\n\t */\n\n\tpublic setAuthor(options: EmbedAuthorOptions | null): this {\n\t\tif (options === null) {\n\t\t\tthis.data.author = undefined;\n\t\t\treturn this;\n\t\t}\n\n\t\t// Data assertions\n\t\tembedAuthorPredicate.parse(options);\n\n\t\tthis.data.author = { name: options.name, url: options.url, icon_url: options.iconURL };\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the color of this embed.\n\t *\n\t * @param color - The color to use\n\t */\n\tpublic setColor(color: RGBTuple | number | null): this {\n\t\t// Data assertions\n\t\tcolorPredicate.parse(color);\n\n\t\tif (Array.isArray(color)) {\n\t\t\tconst [red, green, blue] = color;\n\t\t\tthis.data.color = (red << 16) + (green << 8) + blue;\n\t\t\treturn this;\n\t\t}\n\n\t\tthis.data.color = color ?? undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the description of this embed.\n\t *\n\t * @param description - The description to use\n\t */\n\tpublic setDescription(description: string | null): this {\n\t\t// Data assertions\n\t\tdescriptionPredicate.parse(description);\n\n\t\tthis.data.description = description ?? undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the footer of this embed.\n\t *\n\t * @param options - The footer to use\n\t */\n\tpublic setFooter(options: EmbedFooterOptions | null): this {\n\t\tif (options === null) {\n\t\t\tthis.data.footer = undefined;\n\t\t\treturn this;\n\t\t}\n\n\t\t// Data assertions\n\t\tembedFooterPredicate.parse(options);\n\n\t\tthis.data.footer = { text: options.text, icon_url: options.iconURL };\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the image of this embed.\n\t *\n\t * @param url - The image URL to use\n\t */\n\tpublic setImage(url: string | null): this {\n\t\t// Data assertions\n\t\timageURLPredicate.parse(url);\n\n\t\tthis.data.image = url ? { url } : undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the thumbnail of this embed.\n\t *\n\t * @param url - The thumbnail URL to use\n\t */\n\tpublic setThumbnail(url: string | null): this {\n\t\t// Data assertions\n\t\timageURLPredicate.parse(url);\n\n\t\tthis.data.thumbnail = url ? { url } : undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the timestamp of this embed.\n\t *\n\t * @param timestamp - The timestamp or date to use\n\t */\n\tpublic setTimestamp(timestamp: Date | number | null = Date.now()): this {\n\t\t// Data assertions\n\t\ttimestampPredicate.parse(timestamp);\n\n\t\tthis.data.timestamp = timestamp ? new Date(timestamp).toISOString() : undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the title for this embed.\n\t *\n\t * @param title - The title to use\n\t */\n\tpublic setTitle(title: string | null): this {\n\t\t// Data assertions\n\t\ttitlePredicate.parse(title);\n\n\t\tthis.data.title = title ?? undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the URL of this embed.\n\t *\n\t * @param url - The URL to use\n\t */\n\tpublic setURL(url: string | null): this {\n\t\t// Data assertions\n\t\turlPredicate.parse(url);\n\n\t\tthis.data.url = url ?? undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Serializes this builder to API-compatible JSON data.\n\t *\n\t * @remarks\n\t * This method runs validations on the data before serializing it.\n\t * As such, it may throw an error if the data is invalid.\n\t */\n\tpublic toJSON(): APIEmbed {\n\t\treturn { ...this.data };\n\t}\n}\n","import { s } from '@sapphire/shapeshift';\nimport { ButtonStyle, ChannelType, type APIMessageComponentEmoji } from 'discord-api-types/v10';\nimport { isValidationEnabled } from '../util/validation.js';\nimport { StringSelectMenuOptionBuilder } from './selectMenu/StringSelectMenuOption.js';\n\nexport const idValidator = s\n\t.number()\n\t.safeInt()\n\t.greaterThanOrEqual(1)\n\t.lessThan(4_294_967_296) // 2^32 - 1\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const customIdValidator = s\n\t.string()\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(100)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const emojiValidator = s\n\t.object({\n\t\tid: s.string(),\n\t\tname: s.string(),\n\t\tanimated: s.boolean(),\n\t})\n\t.partial()\n\t.strict()\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const disabledValidator = s.boolean();\n\nexport const buttonLabelValidator = s\n\t.string()\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(80)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const buttonStyleValidator = s.nativeEnum(ButtonStyle);\n\nexport const placeholderValidator = s.string().lengthLessThanOrEqual(150).setValidationEnabled(isValidationEnabled);\nexport const minMaxValidator = s\n\t.number()\n\t.int()\n\t.greaterThanOrEqual(0)\n\t.lessThanOrEqual(25)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const labelValueDescriptionValidator = s\n\t.string()\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(100)\n\t.setValidationEnabled(isValidationEnabled);\n\n/**\n * @deprecated Replaced with selectMenuStringOptionPredicate.\n */\nexport const jsonOptionValidator = s\n\t.object({\n\t\tlabel: labelValueDescriptionValidator,\n\t\tvalue: labelValueDescriptionValidator,\n\t\tdescription: labelValueDescriptionValidator.optional(),\n\t\temoji: emojiValidator.optional(),\n\t\tdefault: s.boolean().optional(),\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const optionValidator = s.instance(StringSelectMenuOptionBuilder).setValidationEnabled(isValidationEnabled);\n\nexport const optionsValidator = optionValidator\n\t.array()\n\t.lengthGreaterThanOrEqual(0)\n\t.setValidationEnabled(isValidationEnabled);\nexport const optionsLengthValidator = s\n\t.number()\n\t.int()\n\t.greaterThanOrEqual(0)\n\t.lessThanOrEqual(25)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport function validateRequiredSelectMenuParameters(options: StringSelectMenuOptionBuilder[], customId?: string) {\n\tcustomIdValidator.parse(customId);\n\toptionsValidator.parse(options);\n}\n\nexport const defaultValidator = s.boolean();\n\nexport function validateRequiredSelectMenuOptionParameters(label?: string, value?: string) {\n\tlabelValueDescriptionValidator.parse(label);\n\tlabelValueDescriptionValidator.parse(value);\n}\n\nexport const channelTypesValidator = s.nativeEnum(ChannelType).array().setValidationEnabled(isValidationEnabled);\n\nexport const urlValidator = s\n\t.string()\n\t.url({\n\t\tallowedProtocols: ['http:', 'https:', 'discord:'],\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n\nexport function validateRequiredButtonParameters(\n\tstyle?: ButtonStyle,\n\tlabel?: string,\n\temoji?: APIMessageComponentEmoji,\n\tcustomId?: string,\n\tskuId?: string,\n\turl?: string,\n) {\n\tif (style === ButtonStyle.Premium) {\n\t\tif (!skuId) {\n\t\t\tthrow new RangeError('Premium buttons must have an SKU id.');\n\t\t}\n\n\t\tif (customId || label || url || emoji) {\n\t\t\tthrow new RangeError('Premium buttons cannot have a custom id, label, URL, or emoji.');\n\t\t}\n\t} else {\n\t\tif (skuId) {\n\t\t\tthrow new RangeError('Non-premium buttons must not have an SKU id.');\n\t\t}\n\n\t\tif (url && customId) {\n\t\t\tthrow new RangeError('URL and custom id are mutually exclusive.');\n\t\t}\n\n\t\tif (!label && !emoji) {\n\t\t\tthrow new RangeError('Non-premium buttons must have a label and/or an emoji.');\n\t\t}\n\n\t\tif (style === ButtonStyle.Link) {\n\t\t\tif (!url) {\n\t\t\t\tthrow new RangeError('Link buttons must have a URL.');\n\t\t\t}\n\t\t} else if (url) {\n\t\t\tthrow new RangeError('Non-premium and non-link buttons cannot have a URL.');\n\t\t}\n\t}\n}\n","import type { JSONEncodable } from '@discordjs/util';\nimport type { APIMessageComponentEmoji, APISelectMenuOption } from 'discord-api-types/v10';\nimport {\n\tdefaultValidator,\n\temojiValidator,\n\tlabelValueDescriptionValidator,\n\tvalidateRequiredSelectMenuOptionParameters,\n} from '../Assertions.js';\n\n/**\n * A builder that creates API-compatible JSON data for string select menu options.\n */\nexport class StringSelectMenuOptionBuilder implements JSONEncodable {\n\t/**\n\t * Creates a new string select menu option from API data.\n\t *\n\t * @param data - The API data to create this string select menu option with\n\t * @example\n\t * Creating a string select menu option from an API data object:\n\t * ```ts\n\t * const selectMenuOption = new SelectMenuOptionBuilder({\n\t * \tlabel: 'catchy label',\n\t * \tvalue: '1',\n\t * });\n\t * ```\n\t * @example\n\t * Creating a string select menu option using setters and API data:\n\t * ```ts\n\t * const selectMenuOption = new SelectMenuOptionBuilder({\n\t * \tdefault: true,\n\t * \tvalue: '1',\n\t * })\n\t * \t.setLabel('woah');\n\t * ```\n\t */\n\tpublic constructor(public data: Partial = {}) {}\n\n\t/**\n\t * Sets the label for this option.\n\t *\n\t * @param label - The label to use\n\t */\n\tpublic setLabel(label: string) {\n\t\tthis.data.label = labelValueDescriptionValidator.parse(label);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the value for this option.\n\t *\n\t * @param value - The value to use\n\t */\n\tpublic setValue(value: string) {\n\t\tthis.data.value = labelValueDescriptionValidator.parse(value);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the description for this option.\n\t *\n\t * @param description - The description to use\n\t */\n\tpublic setDescription(description: string) {\n\t\tthis.data.description = labelValueDescriptionValidator.parse(description);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether this option is selected by default.\n\t *\n\t * @param isDefault - Whether this option is selected by default\n\t */\n\tpublic setDefault(isDefault = true) {\n\t\tthis.data.default = defaultValidator.parse(isDefault);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the emoji to display for this option.\n\t *\n\t * @param emoji - The emoji to use\n\t */\n\tpublic setEmoji(emoji: APIMessageComponentEmoji) {\n\t\tthis.data.emoji = emojiValidator.parse(emoji);\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc BaseSelectMenuBuilder.toJSON}\n\t */\n\tpublic toJSON(): APISelectMenuOption {\n\t\tvalidateRequiredSelectMenuOptionParameters(this.data.label, this.data.value);\n\n\t\treturn {\n\t\t\t...this.data,\n\t\t} as APISelectMenuOption;\n\t}\n}\n","/* eslint-disable jsdoc/check-param-names */\n\nimport {\n\ttype APIActionRowComponent,\n\tComponentType,\n\ttype APIComponentInMessageActionRow,\n\ttype APIComponentInModalActionRow,\n\ttype APIComponentInActionRow,\n} from 'discord-api-types/v10';\nimport { normalizeArray, type RestOrArray } from '../util/normalizeArray.js';\nimport { ComponentBuilder } from './Component.js';\nimport { createComponentBuilder } from './Components.js';\nimport type { ButtonBuilder } from './button/Button.js';\nimport type { ChannelSelectMenuBuilder } from './selectMenu/ChannelSelectMenu.js';\nimport type { MentionableSelectMenuBuilder } from './selectMenu/MentionableSelectMenu.js';\nimport type { RoleSelectMenuBuilder } from './selectMenu/RoleSelectMenu.js';\nimport type { StringSelectMenuBuilder } from './selectMenu/StringSelectMenu.js';\nimport type { UserSelectMenuBuilder } from './selectMenu/UserSelectMenu.js';\nimport type { TextInputBuilder } from './textInput/TextInput.js';\n\n/**\n * The builders that may be used for modals.\n */\nexport type ModalComponentBuilder = ActionRowBuilder | ModalActionRowComponentBuilder;\n\n/**\n * The builders that may be used within an action row for messages.\n */\nexport type MessageActionRowComponentBuilder =\n\t| ButtonBuilder\n\t| ChannelSelectMenuBuilder\n\t| MentionableSelectMenuBuilder\n\t| RoleSelectMenuBuilder\n\t| StringSelectMenuBuilder\n\t| UserSelectMenuBuilder;\n\n/**\n * The builders that may be used within an action row for modals.\n */\nexport type ModalActionRowComponentBuilder = TextInputBuilder;\n\n/**\n * Any builder.\n */\nexport type AnyComponentBuilder = MessageActionRowComponentBuilder | ModalActionRowComponentBuilder;\n\n/**\n * A builder that creates API-compatible JSON data for action rows.\n *\n * @typeParam ComponentType - The types of components this action row holds\n */\nexport class ActionRowBuilder extends ComponentBuilder<\n\tAPIActionRowComponent\n> {\n\t/**\n\t * The components within this action row.\n\t */\n\tpublic readonly components: ComponentType[];\n\n\t/**\n\t * Creates a new action row from API data.\n\t *\n\t * @param data - The API data to create this action row with\n\t * @example\n\t * Creating an action row from an API data object:\n\t * ```ts\n\t * const actionRow = new ActionRowBuilder({\n\t * \tcomponents: [\n\t * \t\t{\n\t * \t\t\tcustom_id: \"custom id\",\n\t * \t\t\tlabel: \"Type something\",\n\t * \t\t\tstyle: TextInputStyle.Short,\n\t * \t\t\ttype: ComponentType.TextInput,\n\t * \t\t},\n\t * \t],\n\t * });\n\t * ```\n\t * @example\n\t * Creating an action row using setters and API data:\n\t * ```ts\n\t * const actionRow = new ActionRowBuilder({\n\t * \tcomponents: [\n\t * \t\t{\n\t * \t\t\tcustom_id: \"custom id\",\n\t * \t\t\tlabel: \"Click me\",\n\t * \t\t\tstyle: ButtonStyle.Primary,\n\t * \t\t\ttype: ComponentType.Button,\n\t * \t\t},\n\t * \t],\n\t * })\n\t * \t.addComponents(button2, button3);\n\t * ```\n\t */\n\tpublic constructor({ components, ...data }: Partial> = {}) {\n\t\tsuper({ type: ComponentType.ActionRow, ...data });\n\t\tthis.components = (components?.map((component) => createComponentBuilder(component)) ?? []) as ComponentType[];\n\t}\n\n\t/**\n\t * Adds components to this action row.\n\t *\n\t * @param components - The components to add\n\t */\n\tpublic addComponents(...components: RestOrArray) {\n\t\tthis.components.push(...normalizeArray(components));\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets components for this action row.\n\t *\n\t * @param components - The components to set\n\t */\n\tpublic setComponents(...components: RestOrArray) {\n\t\tthis.components.splice(0, this.components.length, ...normalizeArray(components));\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic toJSON(): APIActionRowComponent> {\n\t\treturn {\n\t\t\t...this.data,\n\t\t\tcomponents: this.components.map((component) => component.toJSON()),\n\t\t} as APIActionRowComponent>;\n\t}\n}\n","import type { JSONEncodable } from '@discordjs/util';\nimport type {\n\tAPIActionRowComponent,\n\tAPIComponentInActionRow,\n\tAPIBaseComponent,\n\tComponentType,\n\tAPIMessageComponent,\n\tAPIModalComponent,\n} from 'discord-api-types/v10';\nimport { idValidator } from './Assertions';\n\n/**\n * Any action row component data represented as an object.\n */\nexport type AnyAPIActionRowComponent =\n\t| APIActionRowComponent\n\t| APIComponentInActionRow\n\t| APIMessageComponent\n\t| APIModalComponent;\n\n/**\n * The base component builder that contains common symbols for all sorts of components.\n *\n * @typeParam DataType - The type of internal API data that is stored within the component\n */\nexport abstract class ComponentBuilder<\n\tDataType extends Partial> = APIBaseComponent,\n> implements JSONEncodable {\n\t/**\n\t * The API data associated with this component.\n\t */\n\tpublic readonly data: Partial;\n\n\t/**\n\t * Serializes this builder to API-compatible JSON data.\n\t *\n\t * @remarks\n\t * This method runs validations on the data before serializing it.\n\t * As such, it may throw an error if the data is invalid.\n\t */\n\tpublic abstract toJSON(): AnyAPIActionRowComponent;\n\n\t/**\n\t * Constructs a new kind of component.\n\t *\n\t * @param data - The data to construct a component out of\n\t */\n\tpublic constructor(data: Partial) {\n\t\tthis.data = data;\n\t}\n\n\t/**\n\t * Sets the id (not the custom id) for this component.\n\t *\n\t * @param id - The id for this component\n\t */\n\tpublic setId(id: number) {\n\t\tthis.data.id = idValidator.parse(id);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Clears the id of this component, defaulting to a default incremented id.\n\t */\n\tpublic clearId() {\n\t\tthis.data.id = undefined;\n\t\treturn this;\n\t}\n}\n","import type { JSONEncodable } from '@discordjs/util';\nimport { ComponentType, type APIMessageComponent, type APIModalComponent } from 'discord-api-types/v10';\nimport {\n\tActionRowBuilder,\n\ttype MessageActionRowComponentBuilder,\n\ttype AnyComponentBuilder,\n\ttype ModalComponentBuilder,\n} from './ActionRow.js';\nimport { ComponentBuilder } from './Component.js';\nimport { ButtonBuilder } from './button/Button.js';\nimport { CheckboxBuilder } from './checkbox/Checkbox.js';\nimport { CheckboxGroupBuilder } from './checkbox/CheckboxGroup.js';\nimport { RadioGroupBuilder } from './checkbox/RadioGroup.js';\nimport { FileUploadBuilder } from './fileUpload/FileUpload.js';\nimport { LabelBuilder } from './label/Label.js';\nimport { ChannelSelectMenuBuilder } from './selectMenu/ChannelSelectMenu.js';\nimport { MentionableSelectMenuBuilder } from './selectMenu/MentionableSelectMenu.js';\nimport { RoleSelectMenuBuilder } from './selectMenu/RoleSelectMenu.js';\nimport { StringSelectMenuBuilder } from './selectMenu/StringSelectMenu.js';\nimport { UserSelectMenuBuilder } from './selectMenu/UserSelectMenu.js';\nimport { TextInputBuilder } from './textInput/TextInput.js';\nimport { ContainerBuilder } from './v2/Container.js';\nimport { FileBuilder } from './v2/File.js';\nimport { MediaGalleryBuilder } from './v2/MediaGallery.js';\nimport { SectionBuilder } from './v2/Section.js';\nimport { SeparatorBuilder } from './v2/Separator.js';\nimport { TextDisplayBuilder } from './v2/TextDisplay.js';\nimport { ThumbnailBuilder } from './v2/Thumbnail.js';\n\n/**\n * The builders that may be used for messages.\n */\nexport type MessageComponentBuilder =\n\t| ActionRowBuilder\n\t| ContainerBuilder\n\t| FileBuilder\n\t| MediaGalleryBuilder\n\t| MessageActionRowComponentBuilder\n\t| SectionBuilder\n\t| SeparatorBuilder\n\t| TextDisplayBuilder\n\t| ThumbnailBuilder;\n\n/**\n * Components here are mapped to their respective builder.\n */\nexport interface MappedComponentTypes {\n\t/**\n\t * The action row component type is associated with an {@link ActionRowBuilder}.\n\t */\n\t[ComponentType.ActionRow]: ActionRowBuilder;\n\t/**\n\t * The button component type is associated with a {@link ButtonBuilder}.\n\t */\n\t[ComponentType.Button]: ButtonBuilder;\n\t/**\n\t * The string select component type is associated with a {@link StringSelectMenuBuilder}.\n\t */\n\t[ComponentType.StringSelect]: StringSelectMenuBuilder;\n\t/**\n\t * The text input component type is associated with a {@link TextInputBuilder}.\n\t */\n\t[ComponentType.TextInput]: TextInputBuilder;\n\t/**\n\t * The user select component type is associated with a {@link UserSelectMenuBuilder}.\n\t */\n\t[ComponentType.UserSelect]: UserSelectMenuBuilder;\n\t/**\n\t * The role select component type is associated with a {@link RoleSelectMenuBuilder}.\n\t */\n\t[ComponentType.RoleSelect]: RoleSelectMenuBuilder;\n\t/**\n\t * The mentionable select component type is associated with a {@link MentionableSelectMenuBuilder}.\n\t */\n\t[ComponentType.MentionableSelect]: MentionableSelectMenuBuilder;\n\t/**\n\t * The channel select component type is associated with a {@link ChannelSelectMenuBuilder}.\n\t */\n\t[ComponentType.ChannelSelect]: ChannelSelectMenuBuilder;\n\t/**\n\t * The file component type is associated with a {@link FileBuilder}.\n\t */\n\t[ComponentType.File]: FileBuilder;\n\t/**\n\t * The separator component type is associated with a {@link SeparatorBuilder}.\n\t */\n\t[ComponentType.Separator]: SeparatorBuilder;\n\t/**\n\t * The container component type is associated with a {@link ContainerBuilder}.\n\t */\n\t[ComponentType.Container]: ContainerBuilder;\n\t/**\n\t * The text display component type is associated with a {@link TextDisplayBuilder}.\n\t */\n\t[ComponentType.TextDisplay]: TextDisplayBuilder;\n\t/**\n\t * The thumbnail component type is associated with a {@link ThumbnailBuilder}.\n\t */\n\t[ComponentType.Thumbnail]: ThumbnailBuilder;\n\t/**\n\t * The section component type is associated with a {@link SectionBuilder}.\n\t */\n\t[ComponentType.Section]: SectionBuilder;\n\t/**\n\t * The media gallery component type is associated with a {@link MediaGalleryBuilder}.\n\t */\n\t[ComponentType.MediaGallery]: MediaGalleryBuilder;\n\t/**\n\t * The label component type is associated with a {@link LabelBuilder}.\n\t */\n\t[ComponentType.Label]: LabelBuilder;\n\t/**\n\t * The file upload component type is associated with a {@link FileUploadBuilder}.\n\t */\n\t[ComponentType.FileUpload]: FileUploadBuilder;\n\t/**\n\t * The checkbox component type is associated with a {@link CheckboxBuilder}.\n\t */\n\t[ComponentType.Checkbox]: CheckboxBuilder;\n\t/**\n\t * The checkbox group component type is associated with a {@link CheckboxGroupBuilder}.\n\t */\n\t[ComponentType.CheckboxGroup]: CheckboxGroupBuilder;\n\t/**\n\t * The radio group component type is associated with a {@link RadioGroupBuilder}.\n\t */\n\t[ComponentType.RadioGroup]: RadioGroupBuilder;\n}\n\n/**\n * Factory for creating components from API data.\n *\n * @typeParam ComponentType - The type of component to use\n * @param data - The API data to transform to a component class\n */\nexport function createComponentBuilder(\n\t// eslint-disable-next-line @typescript-eslint/sort-type-constituents\n\tdata: (APIModalComponent | APIMessageComponent) & { type: ComponentType },\n): MappedComponentTypes[ComponentType];\n\n/**\n * Factory for creating components from API data.\n *\n * @typeParam ComponentBuilder - The type of component to use\n * @param data - The API data to transform to a component class\n */\nexport function createComponentBuilder(\n\tdata: ComponentBuilder,\n): ComponentBuilder;\n\nexport function createComponentBuilder(\n\tdata: APIMessageComponent | APIModalComponent | MessageComponentBuilder,\n): ComponentBuilder {\n\tif (data instanceof ComponentBuilder) {\n\t\treturn data;\n\t}\n\n\tswitch (data.type) {\n\t\tcase ComponentType.ActionRow:\n\t\t\treturn new ActionRowBuilder(data);\n\t\tcase ComponentType.Button:\n\t\t\treturn new ButtonBuilder(data);\n\t\tcase ComponentType.StringSelect:\n\t\t\treturn new StringSelectMenuBuilder(data);\n\t\tcase ComponentType.TextInput:\n\t\t\treturn new TextInputBuilder(data);\n\t\tcase ComponentType.UserSelect:\n\t\t\treturn new UserSelectMenuBuilder(data);\n\t\tcase ComponentType.RoleSelect:\n\t\t\treturn new RoleSelectMenuBuilder(data);\n\t\tcase ComponentType.MentionableSelect:\n\t\t\treturn new MentionableSelectMenuBuilder(data);\n\t\tcase ComponentType.ChannelSelect:\n\t\t\treturn new ChannelSelectMenuBuilder(data);\n\t\tcase ComponentType.File:\n\t\t\treturn new FileBuilder(data);\n\t\tcase ComponentType.Container:\n\t\t\treturn new ContainerBuilder(data);\n\t\tcase ComponentType.Section:\n\t\t\treturn new SectionBuilder(data);\n\t\tcase ComponentType.Separator:\n\t\t\treturn new SeparatorBuilder(data);\n\t\tcase ComponentType.TextDisplay:\n\t\t\treturn new TextDisplayBuilder(data);\n\t\tcase ComponentType.Thumbnail:\n\t\t\treturn new ThumbnailBuilder(data);\n\t\tcase ComponentType.MediaGallery:\n\t\t\treturn new MediaGalleryBuilder(data);\n\t\tcase ComponentType.Label:\n\t\t\treturn new LabelBuilder(data);\n\t\tcase ComponentType.FileUpload:\n\t\t\treturn new FileUploadBuilder(data);\n\t\tcase ComponentType.Checkbox:\n\t\t\treturn new CheckboxBuilder(data);\n\t\tcase ComponentType.CheckboxGroup:\n\t\t\treturn new CheckboxGroupBuilder(data);\n\t\tcase ComponentType.RadioGroup:\n\t\t\treturn new RadioGroupBuilder(data);\n\t\tdefault:\n\t\t\t// @ts-expect-error This case can still occur if we get a newer unsupported component type\n\t\t\tthrow new Error(`Cannot properly serialize component type: ${data.type}`);\n\t}\n}\n\nfunction isBuilder>(\n\tbuilder: unknown,\n\tConstructor: new () => Builder,\n): builder is Builder {\n\treturn builder instanceof Constructor;\n}\n\nexport function resolveBuilder, Builder extends JSONEncodable>(\n\tbuilder: Builder | ComponentType | ((builder: Builder) => Builder),\n\tConstructor: new (data?: ComponentType) => Builder,\n) {\n\tif (isBuilder(builder, Constructor)) {\n\t\treturn builder;\n\t}\n\n\tif (typeof builder === 'function') {\n\t\treturn builder(new Constructor());\n\t}\n\n\treturn new Constructor(builder);\n}\n","import {\n\tComponentType,\n\ttype APIButtonComponent,\n\ttype APIButtonComponentWithCustomId,\n\ttype APIButtonComponentWithSKUId,\n\ttype APIButtonComponentWithURL,\n\ttype APIMessageComponentEmoji,\n\ttype ButtonStyle,\n\ttype Snowflake,\n} from 'discord-api-types/v10';\nimport {\n\tbuttonLabelValidator,\n\tbuttonStyleValidator,\n\tcustomIdValidator,\n\tdisabledValidator,\n\temojiValidator,\n\turlValidator,\n\tvalidateRequiredButtonParameters,\n} from '../Assertions.js';\nimport { ComponentBuilder } from '../Component.js';\n\n/**\n * A builder that creates API-compatible JSON data for buttons.\n */\nexport class ButtonBuilder extends ComponentBuilder {\n\t/**\n\t * Creates a new button from API data.\n\t *\n\t * @param data - The API data to create this button with\n\t * @example\n\t * Creating a button from an API data object:\n\t * ```ts\n\t * const button = new ButtonBuilder({\n\t * \tcustom_id: 'a cool button',\n\t * \tstyle: ButtonStyle.Primary,\n\t * \tlabel: 'Click Me',\n\t * \temoji: {\n\t * \t\tname: 'smile',\n\t * \t\tid: '123456789012345678',\n\t * \t},\n\t * });\n\t * ```\n\t * @example\n\t * Creating a button using setters and API data:\n\t * ```ts\n\t * const button = new ButtonBuilder({\n\t * \tstyle: ButtonStyle.Secondary,\n\t * \tlabel: 'Click Me',\n\t * })\n\t * \t.setEmoji({ name: '🙂' })\n\t * \t.setCustomId('another cool button');\n\t * ```\n\t */\n\tpublic constructor(data?: Partial) {\n\t\tsuper({ type: ComponentType.Button, ...data });\n\t}\n\n\t/**\n\t * Sets the style of this button.\n\t *\n\t * @param style - The style to use\n\t */\n\tpublic setStyle(style: ButtonStyle) {\n\t\tthis.data.style = buttonStyleValidator.parse(style);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the URL for this button.\n\t *\n\t * @remarks\n\t * This method is only available to buttons using the `Link` button style.\n\t * Only three types of URL schemes are currently supported: `https://`, `http://`, and `discord://`.\n\t * @param url - The URL to use\n\t */\n\tpublic setURL(url: string) {\n\t\t(this.data as APIButtonComponentWithURL).url = urlValidator.parse(url);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the custom id for this button.\n\t *\n\t * @remarks\n\t * This method is only applicable to buttons that are not using the `Link` button style.\n\t * @param customId - The custom id to use\n\t */\n\tpublic setCustomId(customId: string) {\n\t\t(this.data as APIButtonComponentWithCustomId).custom_id = customIdValidator.parse(customId);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the SKU id that represents a purchasable SKU for this button.\n\t *\n\t * @remarks Only available when using premium-style buttons.\n\t * @param skuId - The SKU id to use\n\t */\n\tpublic setSKUId(skuId: Snowflake) {\n\t\t(this.data as APIButtonComponentWithSKUId).sku_id = skuId;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the emoji to display on this button.\n\t *\n\t * @param emoji - The emoji to use\n\t */\n\tpublic setEmoji(emoji: APIMessageComponentEmoji) {\n\t\t(this.data as Exclude).emoji = emojiValidator.parse(emoji);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether this button is disabled.\n\t *\n\t * @param disabled - Whether to disable this button\n\t */\n\tpublic setDisabled(disabled = true) {\n\t\tthis.data.disabled = disabledValidator.parse(disabled);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the label for this button.\n\t *\n\t * @param label - The label to use\n\t */\n\tpublic setLabel(label: string) {\n\t\t(this.data as Exclude).label = buttonLabelValidator.parse(label);\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic toJSON(): APIButtonComponent {\n\t\tvalidateRequiredButtonParameters(\n\t\t\tthis.data.style,\n\t\t\t(this.data as Exclude).label,\n\t\t\t(this.data as Exclude).emoji,\n\t\t\t(this.data as APIButtonComponentWithCustomId).custom_id,\n\t\t\t(this.data as APIButtonComponentWithSKUId).sku_id,\n\t\t\t(this.data as APIButtonComponentWithURL).url,\n\t\t);\n\n\t\treturn {\n\t\t\t...this.data,\n\t\t} as APIButtonComponent;\n\t}\n}\n","import type { APICheckboxComponent } from 'discord-api-types/v10';\nimport { ComponentType } from 'discord-api-types/v10';\nimport { ComponentBuilder } from '../Component';\nimport { checkboxPredicate } from './Assertions';\n\n/**\n * A builder that creates API-compatible JSON data for checkboxes.\n */\nexport class CheckboxBuilder extends ComponentBuilder {\n\t/**\n\t * Creates a new checkbox from API data.\n\t *\n\t * @param data - The API data to create this checkbox with\n\t * @example\n\t * Creating a checkbox from an API data object:\n\t * ```ts\n\t * const checkbox = new CheckboxBuilder({\n\t * \tcustom_id: 'accept_terms',\n\t * \tdefault: false,\n\t * });\n\t * ```\n\t * @example\n\t * Creating a checkbox using setters and API data:\n\t * ```ts\n\t * const checkbox = new CheckboxBuilder()\n\t * \t.setCustomId('subscribe_newsletter')\n\t * \t.setDefault(true);\n\t * ```\n\t */\n\tpublic constructor(data?: Partial) {\n\t\tsuper({ type: ComponentType.Checkbox, ...data });\n\t}\n\n\t/**\n\t * Sets the custom id of this checkbox.\n\t *\n\t * @param customId - The custom id to use\n\t */\n\tpublic setCustomId(customId: string) {\n\t\tthis.data.custom_id = customId;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether this checkbox is checked by default.\n\t *\n\t * @param isDefault - Whether the checkbox should be checked by default\n\t */\n\tpublic setDefault(isDefault: boolean) {\n\t\tthis.data.default = isDefault;\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic override toJSON(): APICheckboxComponent {\n\t\tcheckboxPredicate.parse(this.data);\n\t\treturn {\n\t\t\t...this.data,\n\t\t} as APICheckboxComponent;\n\t}\n}\n","import { Result, s } from '@sapphire/shapeshift';\nimport { ComponentType } from 'discord-api-types/v10';\nimport { isValidationEnabled } from '../../util/validation';\nimport { customIdValidator, idValidator } from '../Assertions';\n\nexport const checkboxPredicate = s\n\t.object({\n\t\ttype: s.literal(ComponentType.Checkbox),\n\t\tcustom_id: customIdValidator,\n\t\tid: idValidator.optional(),\n\t\tdefault: s.boolean().optional(),\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const checkboxGroupOptionPredicate = s\n\t.object({\n\t\tlabel: s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(100),\n\t\tvalue: s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(100),\n\t\tdescription: s.string().lengthLessThanOrEqual(100).optional(),\n\t\tdefault: s.boolean().optional(),\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const checkboxGroupPredicate = s\n\t.object({\n\t\ttype: s.literal(ComponentType.CheckboxGroup),\n\t\tcustom_id: customIdValidator,\n\t\tid: idValidator.optional(),\n\t\toptions: s.array(checkboxGroupOptionPredicate).lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(10),\n\t\tmin_values: s.number().int().greaterThanOrEqual(0).lessThanOrEqual(10).optional(),\n\t\tmax_values: s.number().int().greaterThanOrEqual(1).lessThanOrEqual(10).optional(),\n\t\trequired: s.boolean().optional(),\n\t})\n\t.reshape((data) => {\n\t\t// Ensure min_values is not greater than max_values\n\t\tif (data.min_values !== undefined && data.max_values !== undefined && data.min_values > data.max_values) {\n\t\t\treturn Result.err(new RangeError('min_values cannot be greater than max_values'));\n\t\t}\n\n\t\t// Ensure max_values is not greater than the number of options\n\t\tif (data.max_values !== undefined && data.max_values > data.options.length) {\n\t\t\treturn Result.err(new RangeError('max_values cannot be greater than the number of options'));\n\t\t}\n\n\t\t// Ensure min_values is not greater than the number of options\n\t\tif (data.min_values !== undefined && data.min_values > data.options.length) {\n\t\t\treturn Result.err(new RangeError('min_values cannot be greater than the number of options'));\n\t\t}\n\n\t\t// Ensure required is consistent with min_values\n\t\tif (data.required === true && data.min_values === 0) {\n\t\t\treturn Result.err(new RangeError('If required is true, min_values must be at least 1'));\n\t\t}\n\n\t\t// Ensure there are not more default values than max_values\n\t\tconst defaultCount = data.options.filter((option) => option.default === true).length;\n\t\tif (data.max_values !== undefined && defaultCount > data.max_values) {\n\t\t\treturn Result.err(new RangeError('The number of default options cannot be greater than max_values'));\n\t\t}\n\n\t\t// Ensure each option's value is unique\n\t\tconst values = data.options.map((option) => option.value);\n\t\tconst uniqueValues = new Set(values);\n\t\tif (uniqueValues.size !== values.length) {\n\t\t\treturn Result.err(new RangeError('Each option in a checkbox group must have a unique value'));\n\t\t}\n\n\t\treturn Result.ok(data);\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const radioGroupOptionPredicate = checkboxGroupOptionPredicate;\n\nexport const radioGroupPredicate = s\n\t.object({\n\t\ttype: s.literal(ComponentType.RadioGroup),\n\t\tcustom_id: customIdValidator,\n\t\tid: idValidator.optional(),\n\t\toptions: s.array(radioGroupOptionPredicate).lengthGreaterThanOrEqual(2).lengthLessThanOrEqual(10),\n\t\trequired: s.boolean().optional(),\n\t})\n\t.reshape((data) => {\n\t\t// Ensure there is exactly one default option\n\t\tconst defaultCount = data.options.filter((option) => option.default === true).length;\n\t\tif (defaultCount > 1) {\n\t\t\treturn Result.err(new RangeError('There can be at most one default option in a radio group'));\n\t\t}\n\n\t\t// Ensure each option's value is unique\n\t\tconst values = data.options.map((option) => option.value);\n\t\tconst uniqueValues = new Set(values);\n\t\tif (uniqueValues.size !== values.length) {\n\t\t\treturn Result.err(new RangeError('Each option in a radio group must have a unique value'));\n\t\t}\n\n\t\treturn Result.ok(data);\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n","import type { APICheckboxGroupComponent, APICheckboxGroupOption } from 'discord-api-types/v10';\nimport { ComponentType } from 'discord-api-types/v10';\nimport type { RestOrArray } from '../../util/normalizeArray';\nimport { normalizeArray } from '../../util/normalizeArray';\nimport { ComponentBuilder } from '../Component';\nimport { checkboxGroupOptionPredicate, checkboxGroupPredicate } from './Assertions';\nimport { CheckboxGroupOptionBuilder } from './CheckboxGroupOption';\n\n/**\n * A builder that creates API-compatible JSON data for checkbox groups.\n */\nexport class CheckboxGroupBuilder extends ComponentBuilder {\n\t/**\n\t * The options within this checkbox group.\n\t */\n\tpublic readonly options: CheckboxGroupOptionBuilder[];\n\n\t/**\n\t * Creates a new checkbox group from API data.\n\t *\n\t * @param data - The API data to create this checkbox group with\n\t * @example\n\t * Creating a checkbox group from an API data object:\n\t * ```ts\n\t * const checkboxGroup = new CheckboxGroupBuilder({\n\t * \tcustom_id: 'select_options',\n\t * \toptions: [\n\t * \t\t{ label: 'Option 1', value: 'option_1' },\n\t * \t\t{ label: 'Option 2', value: 'option_2' },\n\t * \t],\n\t * });\n\t * ```\n\t * @example\n\t * Creating a checkbox group using setters and API data:\n\t * ```ts\n\t * const checkboxGroup = new CheckboxGroupBuilder()\n\t * \t.setCustomId('choose_items')\n\t * \t.setOptions([\n\t * \t\t{ label: 'Item A', value: 'item_a' },\n\t * \t\t{ label: 'Item B', value: 'item_b' },\n\t * \t])\n\t * \t.setMinValues(1)\n\t * \t.setMaxValues(2);\n\t * ```\n\t */\n\tpublic constructor(data?: Partial) {\n\t\tconst { options, ...initData } = data ?? {};\n\t\tsuper({ ...initData, type: ComponentType.CheckboxGroup });\n\t\tthis.options = options?.map((option: APICheckboxGroupOption) => new CheckboxGroupOptionBuilder(option)) ?? [];\n\t}\n\n\t/**\n\t * Sets the custom id of this checkbox group.\n\t *\n\t * @param customId - The custom id to use\n\t */\n\tpublic setCustomId(customId: string) {\n\t\tthis.data.custom_id = customId;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds options to this checkbox group.\n\t *\n\t * @param options - The options to add\n\t */\n\tpublic addOptions(...options: RestOrArray) {\n\t\tconst normalizedOptions = normalizeArray(options);\n\n\t\tthis.options.push(\n\t\t\t...normalizedOptions.map((normalizedOption) => {\n\t\t\t\t// I do this because TS' duck typing causes issues,\n\t\t\t\t// if I put in a RadioGroupOption, TS lets it pass but\n\t\t\t\t// it fails to convert to a checkbox group option at runtime\n\t\t\t\tconst json = 'toJSON' in normalizedOption ? normalizedOption.toJSON() : normalizedOption;\n\t\t\t\tconst option = new CheckboxGroupOptionBuilder(json);\n\t\t\t\tcheckboxGroupOptionPredicate.parse(option.toJSON());\n\t\t\t\treturn option;\n\t\t\t}),\n\t\t);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the options for this checkbox group.\n\t *\n\t * @param options - The options to use\n\t */\n\tpublic setOptions(...options: RestOrArray) {\n\t\treturn this.spliceOptions(0, this.options.length, ...options);\n\t}\n\n\t/**\n\t * Removes, replaces, or inserts options for this checkbox group.\n\t *\n\t * @remarks\n\t * This method behaves similarly\n\t * to {@link https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/splice | Array.prototype.splice()}.\n\t * It's useful for modifying and adjusting the order of existing options.\n\t * @param index - The index to start at\n\t * @param deleteCount - The number of options to remove\n\t * @param options - The replacing option objects or builders\n\t */\n\tpublic spliceOptions(\n\t\tindex: number,\n\t\tdeleteCount: number,\n\t\t...options: RestOrArray\n\t) {\n\t\tconst normalizedOptions = normalizeArray(options);\n\n\t\tconst clone = [...this.options];\n\n\t\tclone.splice(\n\t\t\tindex,\n\t\t\tdeleteCount,\n\t\t\t...normalizedOptions.map((normalizedOption) => {\n\t\t\t\t// I do this because TS' duck typing causes issues,\n\t\t\t\t// if I put in a RadioGroupOption, TS lets it pass but\n\t\t\t\t// it fails to convert to a checkbox group option at runtime\n\t\t\t\tconst json = 'toJSON' in normalizedOption ? normalizedOption.toJSON() : normalizedOption;\n\t\t\t\tconst option = new CheckboxGroupOptionBuilder(json);\n\t\t\t\tcheckboxGroupOptionPredicate.parse(option.toJSON());\n\t\t\t\treturn option;\n\t\t\t}),\n\t\t);\n\n\t\tthis.options.splice(0, this.options.length, ...clone);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the minimum number of options that must be selected.\n\t *\n\t * @param minValues - The minimum number of options that must be selected\n\t */\n\tpublic setMinValues(minValues: number) {\n\t\tthis.data.min_values = minValues;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the maximum number of options that can be selected.\n\t *\n\t * @param maxValues - The maximum number of options that can be selected\n\t */\n\tpublic setMaxValues(maxValues: number) {\n\t\tthis.data.max_values = maxValues;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether selecting options is required.\n\t *\n\t * @param required - Whether selecting options is required\n\t */\n\tpublic setRequired(required: boolean) {\n\t\tthis.data.required = required;\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic override toJSON(): APICheckboxGroupComponent {\n\t\tconst data = {\n\t\t\t...this.data,\n\t\t\toptions: this.options.map((option) => option.toJSON()),\n\t\t};\n\n\t\tcheckboxGroupPredicate.parse(data);\n\n\t\treturn data as APICheckboxGroupComponent;\n\t}\n}\n","import type { JSONEncodable } from '@discordjs/util';\nimport type { APICheckboxGroupOption } from 'discord-api-types/v10';\nimport { checkboxGroupOptionPredicate } from './Assertions';\n\n/**\n * A builder that creates API-compatible JSON data for checkbox group options.\n */\nexport class CheckboxGroupOptionBuilder implements JSONEncodable {\n\t/**\n\t * Creates a new checkbox group option from API data.\n\t *\n\t * @param data - The API data to create this checkbox group option with\n\t * @example\n\t * Creating a checkbox group option from an API data object:\n\t * ```ts\n\t * const option = new CheckboxGroupOptionBuilder({\n\t * \tlabel: 'Option 1',\n\t * \tvalue: 'option_1',\n\t * });\n\t * ```\n\t * @example\n\t * Creating a checkbox group option using setters and API data:\n\t * ```ts\n\t * const option = new CheckboxGroupOptionBuilder()\n\t * \t.setLabel('Option 2')\n\t * \t.setValue('option_2');\n\t * ```\n\t */\n\tpublic constructor(public data: Partial = {}) {}\n\n\t/**\n\t * Sets the label for this option.\n\t *\n\t * @param label - The label to use\n\t */\n\tpublic setLabel(label: string) {\n\t\tthis.data.label = label;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the value for this option.\n\t *\n\t * @param value - The value to use\n\t */\n\tpublic setValue(value: string) {\n\t\tthis.data.value = value;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the description for this option.\n\t *\n\t * @param description - The description to use\n\t */\n\tpublic setDescription(description: string) {\n\t\tthis.data.description = description;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether this option is selected by default.\n\t *\n\t * @param isDefault - Whether the option should be selected by default\n\t */\n\tpublic setDefault(isDefault: boolean) {\n\t\tthis.data.default = isDefault;\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic toJSON(): APICheckboxGroupOption {\n\t\tcheckboxGroupOptionPredicate.parse(this.data);\n\n\t\treturn {\n\t\t\t...this.data,\n\t\t} as APICheckboxGroupOption;\n\t}\n}\n","import type { APIRadioGroupComponent, APIRadioGroupOption } from 'discord-api-types/v10';\nimport { ComponentType } from 'discord-api-types/v10';\nimport type { RestOrArray } from '../../util/normalizeArray';\nimport { normalizeArray } from '../../util/normalizeArray';\nimport { ComponentBuilder } from '../Component';\nimport { radioGroupOptionPredicate, radioGroupPredicate } from './Assertions';\nimport { RadioGroupOptionBuilder } from './RadioGroupOption';\n\n/**\n * A builder that creates API-compatible JSON data for radio groups.\n */\nexport class RadioGroupBuilder extends ComponentBuilder {\n\t/**\n\t * The options within this radio group.\n\t */\n\tpublic readonly options: RadioGroupOptionBuilder[];\n\n\t/**\n\t * Creates a new radio group from API data.\n\t *\n\t * @param data - The API data to create this radio group with\n\t * @example\n\t * Creating a radio group from an API data object:\n\t * ```ts\n\t * const radioGroup = new RadioGroupBuilder({\n\t * \tcustom_id: 'select_options',\n\t * \toptions: [\n\t * \t\t{ label: 'Option 1', value: 'option_1' },\n\t * \t\t{ label: 'Option 2', value: 'option_2' },\n\t * \t],\n\t * });\n\t * ```\n\t * @example\n\t * Creating a radio group using setters and API data:\n\t * ```ts\n\t * const radioGroup = new RadioGroupBuilder()\n\t * \t.setCustomId('choose_items')\n\t * \t.setOptions([\n\t * \t\t{ label: 'Item A', value: 'item_a' },\n\t * \t\t{ label: 'Item B', value: 'item_b' },\n\t * \t])\n\t * ```\n\t */\n\tpublic constructor(data?: Partial) {\n\t\tconst { options, ...initData } = data ?? {};\n\t\tsuper({ ...initData, type: ComponentType.RadioGroup });\n\t\tthis.options = options?.map((option: APIRadioGroupOption) => new RadioGroupOptionBuilder(option)) ?? [];\n\t}\n\n\t/**\n\t * Sets the custom id of this radio group.\n\t *\n\t * @param customId - The custom id to use\n\t */\n\tpublic setCustomId(customId: string) {\n\t\tthis.data.custom_id = customId;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds options to this radio group.\n\t *\n\t * @param options - The options to add\n\t */\n\tpublic addOptions(...options: RestOrArray) {\n\t\tconst normalizedOptions = normalizeArray(options);\n\n\t\tthis.options.push(\n\t\t\t...normalizedOptions.map((normalizedOption) => {\n\t\t\t\t// I do this because TS' duck typing causes issues,\n\t\t\t\t// if I put in a CheckboxGroupOption, TS lets it pass but\n\t\t\t\t// it fails to convert to a checkbox group option at runtime\n\t\t\t\tconst json = 'toJSON' in normalizedOption ? normalizedOption.toJSON() : normalizedOption;\n\t\t\t\tconst option = new RadioGroupOptionBuilder(json);\n\t\t\t\tradioGroupOptionPredicate.parse(option.toJSON());\n\t\t\t\treturn option;\n\t\t\t}),\n\t\t);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the options for this radio group.\n\t *\n\t * @param options - The options to use\n\t */\n\tpublic setOptions(...options: RestOrArray) {\n\t\treturn this.spliceOptions(0, this.options.length, ...options);\n\t}\n\n\t/**\n\t * Removes, replaces, or inserts options for this radio group.\n\t *\n\t * @remarks\n\t * This method behaves similarly\n\t * to {@link https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/splice | Array.prototype.splice()}.\n\t * It's useful for modifying and adjusting the order of existing options.\n\t * @param index - The index to start at\n\t * @param deleteCount - The number of options to remove\n\t * @param options - The replacing option objects or builders\n\t */\n\tpublic spliceOptions(\n\t\tindex: number,\n\t\tdeleteCount: number,\n\t\t...options: RestOrArray\n\t) {\n\t\tconst normalizedOptions = normalizeArray(options);\n\n\t\tconst clone = [...this.options];\n\n\t\tclone.splice(\n\t\t\tindex,\n\t\t\tdeleteCount,\n\t\t\t...normalizedOptions.map((normalizedOption) => {\n\t\t\t\t// I do this because TS' duck typing causes issues,\n\t\t\t\t// if I put in a CheckboxGroupOption, TS lets it pass but\n\t\t\t\t// it fails to convert to a radio group option at runtime\n\t\t\t\tconst json = 'toJSON' in normalizedOption ? normalizedOption.toJSON() : normalizedOption;\n\t\t\t\tconst option = new RadioGroupOptionBuilder(json);\n\t\t\t\tradioGroupOptionPredicate.parse(option.toJSON());\n\t\t\t\treturn option;\n\t\t\t}),\n\t\t);\n\n\t\tthis.options.splice(0, this.options.length, ...clone);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether selecting options is required.\n\t *\n\t * @param required - Whether selecting options is required\n\t */\n\tpublic setRequired(required: boolean) {\n\t\tthis.data.required = required;\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic override toJSON(): APIRadioGroupComponent {\n\t\tconst data = {\n\t\t\t...this.data,\n\t\t\toptions: this.options.map((option) => option.toJSON()),\n\t\t};\n\n\t\tradioGroupPredicate.parse(data);\n\n\t\treturn data as APIRadioGroupComponent;\n\t}\n}\n","import type { JSONEncodable } from '@discordjs/util';\nimport type { APIRadioGroupOption } from 'discord-api-types/v10';\nimport { radioGroupOptionPredicate } from './Assertions';\n\n/**\n * A builder that creates API-compatible JSON data for radio group options.\n */\nexport class RadioGroupOptionBuilder implements JSONEncodable {\n\t/**\n\t * Creates a new radio group option from API data.\n\t *\n\t * @param data - The API data to create this radio group option with\n\t * @example\n\t * Creating a radio group option from an API data object:\n\t * ```ts\n\t * const option = new RadioGroupOptionBuilder({\n\t * \tlabel: 'Option 1',\n\t * \tvalue: 'option_1',\n\t * });\n\t * ```\n\t * @example\n\t * Creating a radio group option using setters and API data:\n\t * ```ts\n\t * const option = new RadioGroupOptionBuilder()\n\t * \t.setLabel('Option 2')\n\t * \t.setValue('option_2');\n\t * ```\n\t */\n\tpublic constructor(public data: Partial = {}) {}\n\n\t/**\n\t * Sets the label for this option.\n\t *\n\t * @param label - The label to use\n\t */\n\tpublic setLabel(label: string) {\n\t\tthis.data.label = label;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the value for this option.\n\t *\n\t * @param value - The value to use\n\t */\n\tpublic setValue(value: string) {\n\t\tthis.data.value = value;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the description for this option.\n\t *\n\t * @param description - The description to use\n\t */\n\tpublic setDescription(description: string) {\n\t\tthis.data.description = description;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether this option is selected by default.\n\t *\n\t * @param isDefault - Whether the option should be selected by default\n\t */\n\tpublic setDefault(isDefault: boolean) {\n\t\tthis.data.default = isDefault;\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic toJSON(): APIRadioGroupOption {\n\t\tradioGroupOptionPredicate.parse(this.data);\n\n\t\treturn {\n\t\t\t...this.data,\n\t\t} as APIRadioGroupOption;\n\t}\n}\n","import { type APIFileUploadComponent, ComponentType } from 'discord-api-types/v10';\nimport { ComponentBuilder } from '../Component.js';\nimport { fileUploadPredicate } from './Assertions.js';\n\n/**\n * A builder that creates API-compatible JSON data for file uploads.\n */\nexport class FileUploadBuilder extends ComponentBuilder {\n\t/**\n\t * Creates a new file upload.\n\t *\n\t * @param data - The API data to create this file upload with\n\t * @example\n\t * Creating a file upload from an API data object:\n\t * ```ts\n\t * const fileUpload = new FileUploadBuilder({\n\t * \tcustom_id: \"file_upload\",\n\t * min_values: 2,\n\t * max_values: 5,\n\t * });\n\t * ```\n\t * @example\n\t * Creating a file upload using setters and API data:\n\t * ```ts\n\t * const fileUpload = new FileUploadBuilder({\n\t * \tcustom_id: \"file_upload\",\n\t * min_values: 2,\n\t * max_values: 5,\n\t * }).setRequired();\n\t * ```\n\t */\n\tpublic constructor(data: Partial = {}) {\n\t\tsuper({ type: ComponentType.FileUpload, ...data });\n\t}\n\n\t/**\n\t * Sets the custom id for this file upload.\n\t *\n\t * @param customId - The custom id to use\n\t */\n\tpublic setCustomId(customId: string) {\n\t\tthis.data.custom_id = customId;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the minimum number of file uploads required.\n\t *\n\t * @param minValues - The minimum values that must be uploaded\n\t */\n\tpublic setMinValues(minValues: number) {\n\t\tthis.data.min_values = minValues;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Clears the minimum values.\n\t */\n\tpublic clearMinValues() {\n\t\tthis.data.min_values = undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the maximum number of file uploads required.\n\t *\n\t * @param maxValues - The maximum values that can be uploaded\n\t */\n\tpublic setMaxValues(maxValues: number) {\n\t\tthis.data.max_values = maxValues;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Clears the maximum values.\n\t */\n\tpublic clearMaxValues() {\n\t\tthis.data.max_values = undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether this file upload is required.\n\t *\n\t * @param required - Whether this file upload is required\n\t */\n\tpublic setRequired(required = true) {\n\t\tthis.data.required = required;\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic toJSON(): APIFileUploadComponent {\n\t\tfileUploadPredicate.parse(this.data);\n\t\treturn this.data as APIFileUploadComponent;\n\t}\n}\n","import { s } from '@sapphire/shapeshift';\nimport { ComponentType } from 'discord-api-types/v10';\nimport { customIdValidator, idValidator } from '../Assertions.js';\n\nexport const fileUploadPredicate = s.object({\n\ttype: s.literal(ComponentType.FileUpload),\n\tid: idValidator.optional(),\n\tcustom_id: customIdValidator,\n\tmin_values: s.number().greaterThanOrEqual(0).lessThanOrEqual(10).optional(),\n\tmax_values: s.number().greaterThanOrEqual(1).lessThanOrEqual(10).optional(),\n\trequired: s.boolean().optional(),\n});\n","import type {\n\tAPIChannelSelectComponent,\n\tAPICheckboxComponent,\n\tAPICheckboxGroupComponent,\n\tAPIFileUploadComponent,\n\tAPILabelComponent,\n\tAPIMentionableSelectComponent,\n\tAPIRadioGroupComponent,\n\tAPIRoleSelectComponent,\n\tAPIStringSelectComponent,\n\tAPITextInputComponent,\n\tAPIUserSelectComponent,\n} from 'discord-api-types/v10';\nimport { ComponentType } from 'discord-api-types/v10';\nimport { ComponentBuilder } from '../Component.js';\nimport { createComponentBuilder, resolveBuilder } from '../Components.js';\nimport { CheckboxBuilder } from '../checkbox/Checkbox.js';\nimport { CheckboxGroupBuilder } from '../checkbox/CheckboxGroup.js';\nimport { RadioGroupBuilder } from '../checkbox/RadioGroup.js';\nimport { FileUploadBuilder } from '../fileUpload/FileUpload.js';\nimport { ChannelSelectMenuBuilder } from '../selectMenu/ChannelSelectMenu.js';\nimport { MentionableSelectMenuBuilder } from '../selectMenu/MentionableSelectMenu.js';\nimport { RoleSelectMenuBuilder } from '../selectMenu/RoleSelectMenu.js';\nimport { StringSelectMenuBuilder } from '../selectMenu/StringSelectMenu.js';\nimport { UserSelectMenuBuilder } from '../selectMenu/UserSelectMenu.js';\nimport { TextInputBuilder } from '../textInput/TextInput.js';\nimport { labelPredicate } from './Assertions.js';\n\nexport interface LabelBuilderData extends Partial> {\n\tcomponent?:\n\t\t| ChannelSelectMenuBuilder\n\t\t| CheckboxBuilder\n\t\t| CheckboxGroupBuilder\n\t\t| FileUploadBuilder\n\t\t| MentionableSelectMenuBuilder\n\t\t| RadioGroupBuilder\n\t\t| RoleSelectMenuBuilder\n\t\t| StringSelectMenuBuilder\n\t\t| TextInputBuilder\n\t\t| UserSelectMenuBuilder;\n}\n\n/**\n * A builder that creates API-compatible JSON data for labels.\n */\nexport class LabelBuilder extends ComponentBuilder {\n\t/**\n\t * @internal\n\t */\n\tpublic override readonly data: LabelBuilderData;\n\n\t/**\n\t * Creates a new label.\n\t *\n\t * @param data - The API data to create this label with\n\t * @example\n\t * Creating a label from an API data object:\n\t * ```ts\n\t * const label = new LabelBuilder({\n\t * \tlabel: \"label\",\n\t * \tcomponent,\n\t * });\n\t * ```\n\t * @example\n\t * Creating a label using setters and API data:\n\t * ```ts\n\t * const label = new LabelBuilder({\n\t * \tlabel: 'label',\n\t * \tcomponent,\n\t * }).setLabel('new text');\n\t * ```\n\t */\n\tpublic constructor(data: Partial = {}) {\n\t\tsuper({ type: ComponentType.Label });\n\n\t\tconst { component, ...rest } = data;\n\n\t\tthis.data = {\n\t\t\t...rest,\n\t\t\tcomponent: component ? createComponentBuilder(component) : undefined,\n\t\t\ttype: ComponentType.Label,\n\t\t};\n\t}\n\n\t/**\n\t * Sets the label for this label.\n\t *\n\t * @param label - The label to use\n\t */\n\tpublic setLabel(label: string) {\n\t\tthis.data.label = label;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the description for this label.\n\t *\n\t * @param description - The description to use\n\t */\n\tpublic setDescription(description: string) {\n\t\tthis.data.description = description;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Clears the description for this label.\n\t */\n\tpublic clearDescription() {\n\t\tthis.data.description = undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets a string select menu component to this label.\n\t *\n\t * @param input - A function that returns a component builder or an already built builder\n\t */\n\tpublic setStringSelectMenuComponent(\n\t\tinput:\n\t\t\t| APIStringSelectComponent\n\t\t\t| StringSelectMenuBuilder\n\t\t\t| ((builder: StringSelectMenuBuilder) => StringSelectMenuBuilder),\n\t): this {\n\t\tthis.data.component = resolveBuilder(input, StringSelectMenuBuilder);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets a user select menu component to this label.\n\t *\n\t * @param input - A function that returns a component builder or an already built builder\n\t */\n\tpublic setUserSelectMenuComponent(\n\t\tinput: APIUserSelectComponent | UserSelectMenuBuilder | ((builder: UserSelectMenuBuilder) => UserSelectMenuBuilder),\n\t): this {\n\t\tthis.data.component = resolveBuilder(input, UserSelectMenuBuilder);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets a role select menu component to this label.\n\t *\n\t * @param input - A function that returns a component builder or an already built builder\n\t */\n\tpublic setRoleSelectMenuComponent(\n\t\tinput: APIRoleSelectComponent | RoleSelectMenuBuilder | ((builder: RoleSelectMenuBuilder) => RoleSelectMenuBuilder),\n\t): this {\n\t\tthis.data.component = resolveBuilder(input, RoleSelectMenuBuilder);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets a mentionable select menu component to this label.\n\t *\n\t * @param input - A function that returns a component builder or an already built builder\n\t */\n\tpublic setMentionableSelectMenuComponent(\n\t\tinput:\n\t\t\t| APIMentionableSelectComponent\n\t\t\t| MentionableSelectMenuBuilder\n\t\t\t| ((builder: MentionableSelectMenuBuilder) => MentionableSelectMenuBuilder),\n\t): this {\n\t\tthis.data.component = resolveBuilder(input, MentionableSelectMenuBuilder);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets a channel select menu component to this label.\n\t *\n\t * @param input - A function that returns a component builder or an already built builder\n\t */\n\tpublic setChannelSelectMenuComponent(\n\t\tinput:\n\t\t\t| APIChannelSelectComponent\n\t\t\t| ChannelSelectMenuBuilder\n\t\t\t| ((builder: ChannelSelectMenuBuilder) => ChannelSelectMenuBuilder),\n\t): this {\n\t\tthis.data.component = resolveBuilder(input, ChannelSelectMenuBuilder);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets a text input component to this label.\n\t *\n\t * @param input - A function that returns a component builder or an already built builder\n\t */\n\tpublic setTextInputComponent(\n\t\tinput: APITextInputComponent | TextInputBuilder | ((builder: TextInputBuilder) => TextInputBuilder),\n\t): this {\n\t\tthis.data.component = resolveBuilder(input, TextInputBuilder);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets a file upload component to this label.\n\t *\n\t * @param input - A function that returns a component builder or an already built builder\n\t */\n\tpublic setFileUploadComponent(\n\t\tinput: APIFileUploadComponent | FileUploadBuilder | ((builder: FileUploadBuilder) => FileUploadBuilder),\n\t): this {\n\t\tthis.data.component = resolveBuilder(input, FileUploadBuilder);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets a checkbox component to this label.\n\t *\n\t * @param input - A function that returns a component builder or an already built builder\n\t */\n\tpublic setCheckboxComponent(\n\t\tinput: APICheckboxComponent | CheckboxBuilder | ((builder: CheckboxBuilder) => CheckboxBuilder),\n\t): this {\n\t\tthis.data.component = resolveBuilder(input, CheckboxBuilder);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets a checkbox group component to this label.\n\t *\n\t * @param input - A function that returns a component builder or an already built builder\n\t */\n\tpublic setCheckboxGroupComponent(\n\t\tinput: APICheckboxGroupComponent | CheckboxGroupBuilder | ((builder: CheckboxGroupBuilder) => CheckboxGroupBuilder),\n\t): this {\n\t\tthis.data.component = resolveBuilder(input, CheckboxGroupBuilder);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets a radio group component to this label.\n\t *\n\t * @param input - A function that returns a component builder or an already built builder\n\t */\n\tpublic setRadioGroupComponent(\n\t\tinput: APIRadioGroupComponent | RadioGroupBuilder | ((builder: RadioGroupBuilder) => RadioGroupBuilder),\n\t): this {\n\t\tthis.data.component = resolveBuilder(input, RadioGroupBuilder);\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic override toJSON(): APILabelComponent {\n\t\tconst { component, ...rest } = this.data;\n\n\t\tconst data = {\n\t\t\t...rest,\n\t\t\t// The label predicate validates the component.\n\t\t\tcomponent: component?.toJSON(),\n\t\t};\n\n\t\tlabelPredicate.parse(data);\n\n\t\treturn data as APILabelComponent;\n\t}\n}\n","import {\n\ttype APIChannelSelectComponent,\n\ttype ChannelType,\n\ttype Snowflake,\n\tComponentType,\n\tSelectMenuDefaultValueType,\n} from 'discord-api-types/v10';\nimport { type RestOrArray, normalizeArray } from '../../util/normalizeArray.js';\nimport { channelTypesValidator, customIdValidator, optionsLengthValidator } from '../Assertions.js';\nimport { BaseSelectMenuBuilder } from './BaseSelectMenu.js';\n\n/**\n * A builder that creates API-compatible JSON data for channel select menus.\n */\nexport class ChannelSelectMenuBuilder extends BaseSelectMenuBuilder {\n\t/**\n\t * Creates a new select menu from API data.\n\t *\n\t * @param data - The API data to create this select menu with\n\t * @example\n\t * Creating a select menu from an API data object:\n\t * ```ts\n\t * const selectMenu = new ChannelSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * \tplaceholder: 'select an option',\n\t * \tmax_values: 2,\n\t * });\n\t * ```\n\t * @example\n\t * Creating a select menu using setters and API data:\n\t * ```ts\n\t * const selectMenu = new ChannelSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * })\n\t * \t.addChannelTypes(ChannelType.GuildText, ChannelType.GuildAnnouncement)\n\t * \t.setMinValues(2);\n\t * ```\n\t */\n\tpublic constructor(data?: Partial) {\n\t\tsuper({ ...data, type: ComponentType.ChannelSelect });\n\t}\n\n\t/**\n\t * Adds channel types to this select menu.\n\t *\n\t * @param types - The channel types to use\n\t */\n\tpublic addChannelTypes(...types: RestOrArray) {\n\t\tconst normalizedTypes = normalizeArray(types);\n\t\tthis.data.channel_types ??= [];\n\t\tthis.data.channel_types.push(...channelTypesValidator.parse(normalizedTypes));\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets channel types for this select menu.\n\t *\n\t * @param types - The channel types to use\n\t */\n\tpublic setChannelTypes(...types: RestOrArray) {\n\t\tconst normalizedTypes = normalizeArray(types);\n\t\tthis.data.channel_types ??= [];\n\t\tthis.data.channel_types.splice(0, this.data.channel_types.length, ...channelTypesValidator.parse(normalizedTypes));\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds default channels to this auto populated select menu.\n\t *\n\t * @param channels - The channels to add\n\t */\n\tpublic addDefaultChannels(...channels: RestOrArray) {\n\t\tconst normalizedValues = normalizeArray(channels);\n\t\toptionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length);\n\t\tthis.data.default_values ??= [];\n\n\t\tthis.data.default_values.push(\n\t\t\t...normalizedValues.map((id) => ({\n\t\t\t\tid,\n\t\t\t\ttype: SelectMenuDefaultValueType.Channel as const,\n\t\t\t})),\n\t\t);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets default channels for this auto populated select menu.\n\t *\n\t * @param channels - The channels to set\n\t */\n\tpublic setDefaultChannels(...channels: RestOrArray) {\n\t\tconst normalizedValues = normalizeArray(channels);\n\t\toptionsLengthValidator.parse(normalizedValues.length);\n\n\t\tthis.data.default_values = normalizedValues.map((id) => ({\n\t\t\tid,\n\t\t\ttype: SelectMenuDefaultValueType.Channel as const,\n\t\t}));\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc BaseSelectMenuBuilder.toJSON}\n\t */\n\tpublic override toJSON(): APIChannelSelectComponent {\n\t\tcustomIdValidator.parse(this.data.custom_id);\n\n\t\treturn {\n\t\t\t...this.data,\n\t\t} as APIChannelSelectComponent;\n\t}\n}\n","import { s } from '@sapphire/shapeshift';\nimport { ComponentType, TextInputStyle } from 'discord-api-types/v10';\nimport { isValidationEnabled } from '../../util/validation.js';\nimport { customIdValidator, idValidator } from '../Assertions.js';\n\nexport const textInputStyleValidator = s.nativeEnum(TextInputStyle).setValidationEnabled(isValidationEnabled);\nexport const minLengthValidator = s\n\t.number()\n\t.int()\n\t.greaterThanOrEqual(0)\n\t.lessThanOrEqual(4_000)\n\t.setValidationEnabled(isValidationEnabled);\nexport const maxLengthValidator = s\n\t.number()\n\t.int()\n\t.greaterThanOrEqual(1)\n\t.lessThanOrEqual(4_000)\n\t.setValidationEnabled(isValidationEnabled);\nexport const requiredValidator = s.boolean().setValidationEnabled(isValidationEnabled);\nexport const valueValidator = s.string().lengthLessThanOrEqual(4_000).setValidationEnabled(isValidationEnabled);\nexport const placeholderValidator = s.string().lengthLessThanOrEqual(100).setValidationEnabled(isValidationEnabled);\nexport const labelValidator = s\n\t.string()\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(45)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const textInputPredicate = s\n\t.object({\n\t\ttype: s.literal(ComponentType.TextInput),\n\t\tcustom_id: customIdValidator,\n\t\tstyle: textInputStyleValidator,\n\t\tid: idValidator.optional(),\n\t\tmin_length: minLengthValidator.optional(),\n\t\tmax_length: maxLengthValidator.optional(),\n\t\tplaceholder: placeholderValidator.optional(),\n\t\tvalue: valueValidator.optional(),\n\t\trequired: requiredValidator.optional(),\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n\nexport function validateRequiredParameters(customId?: string, style?: TextInputStyle) {\n\tcustomIdValidator.parse(customId);\n\ttextInputStyleValidator.parse(style);\n}\n","import type { APISelectMenuComponent } from 'discord-api-types/v10';\nimport { customIdValidator, disabledValidator, minMaxValidator, placeholderValidator } from '../Assertions.js';\nimport { ComponentBuilder } from '../Component.js';\nimport { requiredValidator } from '../textInput/Assertions.js';\n\n/**\n * The base select menu builder that contains common symbols for select menu builders.\n *\n * @typeParam SelectMenuType - The type of select menu this would be instantiated for.\n */\nexport abstract class BaseSelectMenuBuilder<\n\tSelectMenuType extends APISelectMenuComponent,\n> extends ComponentBuilder {\n\t/**\n\t * Sets the placeholder for this select menu.\n\t *\n\t * @param placeholder - The placeholder to use\n\t */\n\tpublic setPlaceholder(placeholder: string) {\n\t\tthis.data.placeholder = placeholderValidator.parse(placeholder);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the minimum values that must be selected in the select menu.\n\t *\n\t * @param minValues - The minimum values that must be selected\n\t */\n\tpublic setMinValues(minValues: number) {\n\t\tthis.data.min_values = minMaxValidator.parse(minValues);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the maximum values that can be selected in the select menu.\n\t *\n\t * @param maxValues - The maximum values that can be selected\n\t */\n\tpublic setMaxValues(maxValues: number) {\n\t\tthis.data.max_values = minMaxValidator.parse(maxValues);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the custom id for this select menu.\n\t *\n\t * @param customId - The custom id to use\n\t */\n\tpublic setCustomId(customId: string) {\n\t\tthis.data.custom_id = customIdValidator.parse(customId);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether this select menu is disabled.\n\t *\n\t * @param disabled - Whether this select menu is disabled\n\t */\n\tpublic setDisabled(disabled = true) {\n\t\tthis.data.disabled = disabledValidator.parse(disabled);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether this select menu is required.\n\t *\n\t * @remarks Only for use in modals.\n\t * @param required - Whether this select menu is required\n\t */\n\tpublic setRequired(required = true) {\n\t\tthis.data.required = requiredValidator.parse(required);\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic toJSON(): SelectMenuType {\n\t\tcustomIdValidator.parse(this.data.custom_id);\n\t\treturn {\n\t\t\t...this.data,\n\t\t} as SelectMenuType;\n\t}\n}\n","import {\n\ttype APIMentionableSelectComponent,\n\ttype APISelectMenuDefaultValue,\n\ttype Snowflake,\n\tComponentType,\n\tSelectMenuDefaultValueType,\n} from 'discord-api-types/v10';\nimport { type RestOrArray, normalizeArray } from '../../util/normalizeArray.js';\nimport { optionsLengthValidator } from '../Assertions.js';\nimport { BaseSelectMenuBuilder } from './BaseSelectMenu.js';\n\n/**\n * A builder that creates API-compatible JSON data for mentionable select menus.\n */\nexport class MentionableSelectMenuBuilder extends BaseSelectMenuBuilder {\n\t/**\n\t * Creates a new select menu from API data.\n\t *\n\t * @param data - The API data to create this select menu with\n\t * @example\n\t * Creating a select menu from an API data object:\n\t * ```ts\n\t * const selectMenu = new MentionableSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * \tplaceholder: 'select an option',\n\t * \tmax_values: 2,\n\t * });\n\t * ```\n\t * @example\n\t * Creating a select menu using setters and API data:\n\t * ```ts\n\t * const selectMenu = new MentionableSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * })\n\t * \t.setMinValues(1);\n\t * ```\n\t */\n\tpublic constructor(data?: Partial) {\n\t\tsuper({ ...data, type: ComponentType.MentionableSelect });\n\t}\n\n\t/**\n\t * Adds default roles to this auto populated select menu.\n\t *\n\t * @param roles - The roles to add\n\t */\n\tpublic addDefaultRoles(...roles: RestOrArray) {\n\t\tconst normalizedValues = normalizeArray(roles);\n\t\toptionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length);\n\t\tthis.data.default_values ??= [];\n\n\t\tthis.data.default_values.push(\n\t\t\t...normalizedValues.map((id) => ({\n\t\t\t\tid,\n\t\t\t\ttype: SelectMenuDefaultValueType.Role as const,\n\t\t\t})),\n\t\t);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds default users to this auto populated select menu.\n\t *\n\t * @param users - The users to add\n\t */\n\tpublic addDefaultUsers(...users: RestOrArray) {\n\t\tconst normalizedValues = normalizeArray(users);\n\t\toptionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length);\n\t\tthis.data.default_values ??= [];\n\n\t\tthis.data.default_values.push(\n\t\t\t...normalizedValues.map((id) => ({\n\t\t\t\tid,\n\t\t\t\ttype: SelectMenuDefaultValueType.User as const,\n\t\t\t})),\n\t\t);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds default values to this auto populated select menu.\n\t *\n\t * @param values - The values to add\n\t */\n\tpublic addDefaultValues(\n\t\t...values: RestOrArray<\n\t\t\t| APISelectMenuDefaultValue\n\t\t\t| APISelectMenuDefaultValue\n\t\t>\n\t) {\n\t\tconst normalizedValues = normalizeArray(values);\n\t\toptionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length);\n\t\tthis.data.default_values ??= [];\n\t\tthis.data.default_values.push(...normalizedValues);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets default values for this auto populated select menu.\n\t *\n\t * @param values - The values to set\n\t */\n\tpublic setDefaultValues(\n\t\t...values: RestOrArray<\n\t\t\t| APISelectMenuDefaultValue\n\t\t\t| APISelectMenuDefaultValue\n\t\t>\n\t) {\n\t\tconst normalizedValues = normalizeArray(values);\n\t\toptionsLengthValidator.parse(normalizedValues.length);\n\t\tthis.data.default_values = normalizedValues;\n\t\treturn this;\n\t}\n}\n","import {\n\ttype APIRoleSelectComponent,\n\ttype Snowflake,\n\tComponentType,\n\tSelectMenuDefaultValueType,\n} from 'discord-api-types/v10';\nimport { type RestOrArray, normalizeArray } from '../../util/normalizeArray.js';\nimport { optionsLengthValidator } from '../Assertions.js';\nimport { BaseSelectMenuBuilder } from './BaseSelectMenu.js';\n\n/**\n * A builder that creates API-compatible JSON data for role select menus.\n */\nexport class RoleSelectMenuBuilder extends BaseSelectMenuBuilder {\n\t/**\n\t * Creates a new select menu from API data.\n\t *\n\t * @param data - The API data to create this select menu with\n\t * @example\n\t * Creating a select menu from an API data object:\n\t * ```ts\n\t * const selectMenu = new RoleSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * \tplaceholder: 'select an option',\n\t * \tmax_values: 2,\n\t * });\n\t * ```\n\t * @example\n\t * Creating a select menu using setters and API data:\n\t * ```ts\n\t * const selectMenu = new RoleSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * })\n\t * \t.setMinValues(1);\n\t * ```\n\t */\n\tpublic constructor(data?: Partial) {\n\t\tsuper({ ...data, type: ComponentType.RoleSelect });\n\t}\n\n\t/**\n\t * Adds default roles to this auto populated select menu.\n\t *\n\t * @param roles - The roles to add\n\t */\n\tpublic addDefaultRoles(...roles: RestOrArray) {\n\t\tconst normalizedValues = normalizeArray(roles);\n\t\toptionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length);\n\t\tthis.data.default_values ??= [];\n\n\t\tthis.data.default_values.push(\n\t\t\t...normalizedValues.map((id) => ({\n\t\t\t\tid,\n\t\t\t\ttype: SelectMenuDefaultValueType.Role as const,\n\t\t\t})),\n\t\t);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets default roles for this auto populated select menu.\n\t *\n\t * @param roles - The roles to set\n\t */\n\tpublic setDefaultRoles(...roles: RestOrArray) {\n\t\tconst normalizedValues = normalizeArray(roles);\n\t\toptionsLengthValidator.parse(normalizedValues.length);\n\n\t\tthis.data.default_values = normalizedValues.map((id) => ({\n\t\t\tid,\n\t\t\ttype: SelectMenuDefaultValueType.Role as const,\n\t\t}));\n\n\t\treturn this;\n\t}\n}\n","import { ComponentType } from 'discord-api-types/v10';\nimport type { APIStringSelectComponent, APISelectMenuOption } from 'discord-api-types/v10';\nimport { normalizeArray, type RestOrArray } from '../../util/normalizeArray.js';\nimport { optionsLengthValidator, validateRequiredSelectMenuParameters } from '../Assertions.js';\nimport { selectMenuStringOptionPredicate } from './Assertions.js';\nimport { BaseSelectMenuBuilder } from './BaseSelectMenu.js';\nimport { StringSelectMenuOptionBuilder } from './StringSelectMenuOption.js';\n\n/**\n * A builder that creates API-compatible JSON data for string select menus.\n */\nexport class StringSelectMenuBuilder extends BaseSelectMenuBuilder {\n\t/**\n\t * The options within this select menu.\n\t */\n\tpublic readonly options: StringSelectMenuOptionBuilder[];\n\n\t/**\n\t * Creates a new select menu from API data.\n\t *\n\t * @param data - The API data to create this select menu with\n\t * @example\n\t * Creating a select menu from an API data object:\n\t * ```ts\n\t * const selectMenu = new StringSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * \tplaceholder: 'select an option',\n\t * \tmax_values: 2,\n\t * \toptions: [\n\t * \t\t{ label: 'option 1', value: '1' },\n\t * \t\t{ label: 'option 2', value: '2' },\n\t * \t\t{ label: 'option 3', value: '3' },\n\t * \t],\n\t * });\n\t * ```\n\t * @example\n\t * Creating a select menu using setters and API data:\n\t * ```ts\n\t * const selectMenu = new StringSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * })\n\t * \t.setMinValues(1)\n\t * \t.addOptions({\n\t * \t\tlabel: 'Catchy',\n\t * \t\tvalue: 'catch',\n\t * \t});\n\t * ```\n\t */\n\tpublic constructor(data?: Partial) {\n\t\tconst { options, ...initData } = data ?? {};\n\t\tsuper({ ...initData, type: ComponentType.StringSelect });\n\t\tthis.options = options?.map((option: APISelectMenuOption) => new StringSelectMenuOptionBuilder(option)) ?? [];\n\t}\n\n\t/**\n\t * Adds options to this select menu.\n\t *\n\t * @param options - The options to add\n\t */\n\tpublic addOptions(...options: RestOrArray) {\n\t\tconst normalizedOptions = normalizeArray(options);\n\t\toptionsLengthValidator.parse(this.options.length + normalizedOptions.length);\n\t\tthis.options.push(\n\t\t\t...normalizedOptions.map((normalizedOption) =>\n\t\t\t\tnormalizedOption instanceof StringSelectMenuOptionBuilder\n\t\t\t\t\t? normalizedOption\n\t\t\t\t\t: new StringSelectMenuOptionBuilder(selectMenuStringOptionPredicate.parse(normalizedOption)),\n\t\t\t),\n\t\t);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the options for this select menu.\n\t *\n\t * @param options - The options to set\n\t */\n\tpublic setOptions(...options: RestOrArray) {\n\t\treturn this.spliceOptions(0, this.options.length, ...options);\n\t}\n\n\t/**\n\t * Removes, replaces, or inserts options for this select menu.\n\t *\n\t * @remarks\n\t * This method behaves similarly\n\t * to {@link https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/splice | Array.prototype.splice()}.\n\t * It's useful for modifying and adjusting the order of existing options.\n\t * @example\n\t * Remove the first option:\n\t * ```ts\n\t * selectMenu.spliceOptions(0, 1);\n\t * ```\n\t * @example\n\t * Remove the first n option:\n\t * ```ts\n\t * const n = 4;\n\t * selectMenu.spliceOptions(0, n);\n\t * ```\n\t * @example\n\t * Remove the last option:\n\t * ```ts\n\t * selectMenu.spliceOptions(-1, 1);\n\t * ```\n\t * @param index - The index to start at\n\t * @param deleteCount - The number of options to remove\n\t * @param options - The replacing option objects or builders\n\t */\n\tpublic spliceOptions(\n\t\tindex: number,\n\t\tdeleteCount: number,\n\t\t...options: RestOrArray\n\t) {\n\t\tconst normalizedOptions = normalizeArray(options);\n\n\t\tconst clone = [...this.options];\n\n\t\tclone.splice(\n\t\t\tindex,\n\t\t\tdeleteCount,\n\t\t\t...normalizedOptions.map((normalizedOption) =>\n\t\t\t\tnormalizedOption instanceof StringSelectMenuOptionBuilder\n\t\t\t\t\t? normalizedOption\n\t\t\t\t\t: new StringSelectMenuOptionBuilder(selectMenuStringOptionPredicate.parse(normalizedOption)),\n\t\t\t),\n\t\t);\n\n\t\toptionsLengthValidator.parse(clone.length);\n\t\tthis.options.splice(0, this.options.length, ...clone);\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc BaseSelectMenuBuilder.toJSON}\n\t */\n\tpublic override toJSON(): APIStringSelectComponent {\n\t\tvalidateRequiredSelectMenuParameters(this.options, this.data.custom_id);\n\n\t\treturn {\n\t\t\t...this.data,\n\t\t\toptions: this.options.map((option) => option.toJSON()),\n\t\t} as APIStringSelectComponent;\n\t}\n}\n","import { Result, s } from '@sapphire/shapeshift';\nimport { ChannelType, ComponentType, SelectMenuDefaultValueType } from 'discord-api-types/v10';\nimport { isValidationEnabled } from '../../util/validation.js';\nimport { customIdValidator, emojiValidator, idValidator } from '../Assertions.js';\n\nconst selectMenuBasePredicate = s.object({\n\tid: idValidator.optional(),\n\tplaceholder: s.string().lengthLessThanOrEqual(150).optional(),\n\tmin_values: s.number().greaterThanOrEqual(0).lessThanOrEqual(25).optional(),\n\tmax_values: s.number().greaterThanOrEqual(0).lessThanOrEqual(25).optional(),\n\tcustom_id: customIdValidator,\n\tdisabled: s.boolean().optional(),\n});\n\nexport const selectMenuChannelPredicate = selectMenuBasePredicate\n\t.extend({\n\t\ttype: s.literal(ComponentType.ChannelSelect),\n\t\tchannel_types: s.nativeEnum(ChannelType).array().optional(),\n\t\tdefault_values: s\n\t\t\t.object({ id: s.string(), type: s.literal(SelectMenuDefaultValueType.Channel) })\n\t\t\t.array()\n\t\t\t.lengthLessThanOrEqual(25)\n\t\t\t.optional(),\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const selectMenuMentionablePredicate = selectMenuBasePredicate\n\t.extend({\n\t\ttype: s.literal(ComponentType.MentionableSelect),\n\t\tdefault_values: s\n\t\t\t.object({\n\t\t\t\tid: s.string(),\n\t\t\t\ttype: s.union([s.literal(SelectMenuDefaultValueType.Role), s.literal(SelectMenuDefaultValueType.User)]),\n\t\t\t})\n\t\t\t.array()\n\t\t\t.lengthLessThanOrEqual(25)\n\t\t\t.optional(),\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const selectMenuRolePredicate = selectMenuBasePredicate\n\t.extend({\n\t\ttype: s.literal(ComponentType.RoleSelect),\n\t\tdefault_values: s\n\t\t\t.object({ id: s.string(), type: s.literal(SelectMenuDefaultValueType.Role) })\n\t\t\t.array()\n\t\t\t.lengthLessThanOrEqual(25)\n\t\t\t.optional(),\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const selectMenuUserPredicate = selectMenuBasePredicate\n\t.extend({\n\t\ttype: s.literal(ComponentType.UserSelect),\n\t\tdefault_values: s\n\t\t\t.object({ id: s.string(), type: s.literal(SelectMenuDefaultValueType.User) })\n\t\t\t.array()\n\t\t\t.lengthLessThanOrEqual(25)\n\t\t\t.optional(),\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const selectMenuStringOptionPredicate = s\n\t.object({\n\t\tlabel: s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(100),\n\t\tvalue: s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(100),\n\t\tdescription: s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(100).optional(),\n\t\temoji: emojiValidator.optional(),\n\t\tdefault: s.boolean().optional(),\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const selectMenuStringPredicate = selectMenuBasePredicate\n\t.extend({\n\t\ttype: s.literal(ComponentType.StringSelect),\n\t\toptions: selectMenuStringOptionPredicate.array().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(25),\n\t})\n\t.reshape((value) => {\n\t\tif (value.min_values !== undefined && value.options.length < value.min_values) {\n\t\t\treturn Result.err(new RangeError(`The number of options must be greater than or equal to min_values`));\n\t\t}\n\n\t\tif (value.min_values !== undefined && value.max_values !== undefined && value.min_values > value.max_values) {\n\t\t\treturn Result.err(\n\t\t\t\tnew RangeError(`The maximum amount of options must be greater than or equal to the minimum amount of options`),\n\t\t\t);\n\t\t}\n\n\t\treturn Result.ok(value);\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n","import {\n\ttype APIUserSelectComponent,\n\ttype Snowflake,\n\tComponentType,\n\tSelectMenuDefaultValueType,\n} from 'discord-api-types/v10';\nimport { type RestOrArray, normalizeArray } from '../../util/normalizeArray.js';\nimport { optionsLengthValidator } from '../Assertions.js';\nimport { BaseSelectMenuBuilder } from './BaseSelectMenu.js';\n\n/**\n * A builder that creates API-compatible JSON data for user select menus.\n */\nexport class UserSelectMenuBuilder extends BaseSelectMenuBuilder {\n\t/**\n\t * Creates a new select menu from API data.\n\t *\n\t * @param data - The API data to create this select menu with\n\t * @example\n\t * Creating a select menu from an API data object:\n\t * ```ts\n\t * const selectMenu = new UserSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * \tplaceholder: 'select an option',\n\t * \tmax_values: 2,\n\t * });\n\t * ```\n\t * @example\n\t * Creating a select menu using setters and API data:\n\t * ```ts\n\t * const selectMenu = new UserSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * })\n\t * \t.setMinValues(1);\n\t * ```\n\t */\n\tpublic constructor(data?: Partial) {\n\t\tsuper({ ...data, type: ComponentType.UserSelect });\n\t}\n\n\t/**\n\t * Adds default users to this auto populated select menu.\n\t *\n\t * @param users - The users to add\n\t */\n\tpublic addDefaultUsers(...users: RestOrArray) {\n\t\tconst normalizedValues = normalizeArray(users);\n\t\toptionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length);\n\t\tthis.data.default_values ??= [];\n\n\t\tthis.data.default_values.push(\n\t\t\t...normalizedValues.map((id) => ({\n\t\t\t\tid,\n\t\t\t\ttype: SelectMenuDefaultValueType.User as const,\n\t\t\t})),\n\t\t);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets default users for this auto populated select menu.\n\t *\n\t * @param users - The users to set\n\t */\n\tpublic setDefaultUsers(...users: RestOrArray) {\n\t\tconst normalizedValues = normalizeArray(users);\n\t\toptionsLengthValidator.parse(normalizedValues.length);\n\n\t\tthis.data.default_values = normalizedValues.map((id) => ({\n\t\t\tid,\n\t\t\ttype: SelectMenuDefaultValueType.User as const,\n\t\t}));\n\n\t\treturn this;\n\t}\n}\n","import { isJSONEncodable, type Equatable, type JSONEncodable } from '@discordjs/util';\nimport { ComponentType, type TextInputStyle, type APITextInputComponent } from 'discord-api-types/v10';\nimport isEqual from 'fast-deep-equal';\nimport { customIdValidator } from '../Assertions.js';\nimport { ComponentBuilder } from '../Component.js';\nimport {\n\tmaxLengthValidator,\n\tminLengthValidator,\n\tplaceholderValidator,\n\trequiredValidator,\n\tvalueValidator,\n\tvalidateRequiredParameters,\n\tlabelValidator,\n\ttextInputStyleValidator,\n} from './Assertions.js';\n\n/**\n * A builder that creates API-compatible JSON data for text inputs.\n */\nexport class TextInputBuilder\n\textends ComponentBuilder\n\timplements Equatable>\n{\n\t/**\n\t * Creates a new text input from API data.\n\t *\n\t * @param data - The API data to create this text input with\n\t * @example\n\t * Creating a text input from an API data object:\n\t * ```ts\n\t * const textInput = new TextInputBuilder({\n\t * \tcustom_id: 'a cool text input',\n\t * \tplaceholder: 'Type something',\n\t * \tstyle: TextInputStyle.Short,\n\t * });\n\t * ```\n\t * @example\n\t * Creating a text input using setters and API data:\n\t * ```ts\n\t * const textInput = new TextInputBuilder({\n\t * \tplaceholder: 'Type something else',\n\t * })\n\t * \t.setCustomId('woah')\n\t * \t.setStyle(TextInputStyle.Paragraph);\n\t * ```\n\t */\n\tpublic constructor(data?: APITextInputComponent & { type?: ComponentType.TextInput }) {\n\t\tsuper({ type: ComponentType.TextInput, ...data });\n\t}\n\n\t/**\n\t * Sets the custom id for this text input.\n\t *\n\t * @param customId - The custom id to use\n\t */\n\tpublic setCustomId(customId: string) {\n\t\tthis.data.custom_id = customIdValidator.parse(customId);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the label for this text input.\n\t *\n\t * @param label - The label to use\n\t * @deprecated Use a label builder to create a label (and optionally a description) instead.\n\t */\n\tpublic setLabel(label: string) {\n\t\tthis.data.label = labelValidator.parse(label);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the style for this text input.\n\t *\n\t * @param style - The style to use\n\t */\n\tpublic setStyle(style: TextInputStyle) {\n\t\tthis.data.style = textInputStyleValidator.parse(style);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the minimum length of text for this text input.\n\t *\n\t * @param minLength - The minimum length of text for this text input\n\t */\n\tpublic setMinLength(minLength: number) {\n\t\tthis.data.min_length = minLengthValidator.parse(minLength);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the maximum length of text for this text input.\n\t *\n\t * @param maxLength - The maximum length of text for this text input\n\t */\n\tpublic setMaxLength(maxLength: number) {\n\t\tthis.data.max_length = maxLengthValidator.parse(maxLength);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the placeholder for this text input.\n\t *\n\t * @param placeholder - The placeholder to use\n\t */\n\tpublic setPlaceholder(placeholder: string) {\n\t\tthis.data.placeholder = placeholderValidator.parse(placeholder);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the value for this text input.\n\t *\n\t * @param value - The value to use\n\t */\n\tpublic setValue(value: string) {\n\t\tthis.data.value = valueValidator.parse(value);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether this text input is required.\n\t *\n\t * @param required - Whether this text input is required\n\t */\n\tpublic setRequired(required = true) {\n\t\tthis.data.required = requiredValidator.parse(required);\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic toJSON(): APITextInputComponent {\n\t\tvalidateRequiredParameters(this.data.custom_id, this.data.style);\n\n\t\treturn {\n\t\t\t...this.data,\n\t\t} as APITextInputComponent;\n\t}\n\n\t/**\n\t * Whether this is equal to another structure.\n\t */\n\tpublic equals(other: APITextInputComponent | JSONEncodable): boolean {\n\t\tif (isJSONEncodable(other)) {\n\t\t\treturn isEqual(other.toJSON(), this.data);\n\t\t}\n\n\t\treturn isEqual(other, this.data);\n\t}\n}\n","import { s } from '@sapphire/shapeshift';\nimport { ComponentType } from 'discord-api-types/v10';\nimport { isValidationEnabled } from '../../util/validation.js';\nimport { idValidator } from '../Assertions.js';\nimport { checkboxGroupPredicate, checkboxPredicate, radioGroupPredicate } from '../checkbox/Assertions.js';\nimport { fileUploadPredicate } from '../fileUpload/Assertions.js';\nimport {\n\tselectMenuChannelPredicate,\n\tselectMenuMentionablePredicate,\n\tselectMenuRolePredicate,\n\tselectMenuStringPredicate,\n\tselectMenuUserPredicate,\n} from '../selectMenu/Assertions.js';\nimport { textInputPredicate } from '../textInput/Assertions.js';\n\nexport const labelPredicate = s\n\t.object({\n\t\tid: idValidator.optional(),\n\t\ttype: s.literal(ComponentType.Label),\n\t\tlabel: s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(45),\n\t\tdescription: s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(100).optional(),\n\t\tcomponent: s.union([\n\t\t\ttextInputPredicate,\n\t\t\tselectMenuUserPredicate,\n\t\t\tselectMenuRolePredicate,\n\t\t\tselectMenuMentionablePredicate,\n\t\t\tselectMenuChannelPredicate,\n\t\t\tselectMenuStringPredicate,\n\t\t\tfileUploadPredicate,\n\t\t\tcheckboxPredicate,\n\t\t\tcheckboxGroupPredicate,\n\t\t\tradioGroupPredicate,\n\t\t]),\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n","/* eslint-disable jsdoc/check-param-names */\n\nimport type {\n\tAPIActionRowComponent,\n\tAPIComponentInContainer,\n\tAPIComponentInMessageActionRow,\n\tAPIContainerComponent,\n\tAPIFileComponent,\n\tAPIMediaGalleryComponent,\n\tAPISectionComponent,\n\tAPISeparatorComponent,\n\tAPITextDisplayComponent,\n} from 'discord-api-types/v10';\nimport { ComponentType } from 'discord-api-types/v10';\nimport type { RGBTuple } from '../../index.js';\nimport { MediaGalleryBuilder, SectionBuilder } from '../../index.js';\nimport { normalizeArray, type RestOrArray } from '../../util/normalizeArray.js';\nimport type { AnyComponentBuilder, MessageActionRowComponentBuilder } from '../ActionRow.js';\nimport { ActionRowBuilder } from '../ActionRow.js';\nimport { ComponentBuilder } from '../Component.js';\nimport { createComponentBuilder, resolveBuilder } from '../Components.js';\nimport { containerColorPredicate, spoilerPredicate } from './Assertions.js';\nimport { FileBuilder } from './File.js';\nimport { SeparatorBuilder } from './Separator.js';\nimport { TextDisplayBuilder } from './TextDisplay.js';\n\n/**\n * The builders that may be used within a container.\n */\nexport type ContainerComponentBuilder =\n\t| ActionRowBuilder\n\t| FileBuilder\n\t| MediaGalleryBuilder\n\t| SectionBuilder\n\t| SeparatorBuilder\n\t| TextDisplayBuilder;\n\n/**\n * A builder that creates API-compatible JSON data for a container.\n */\nexport class ContainerBuilder extends ComponentBuilder {\n\t/**\n\t * The components within this container.\n\t */\n\tpublic readonly components: ContainerComponentBuilder[];\n\n\t/**\n\t * Creates a new container from API data.\n\t *\n\t * @param data - The API data to create this container with\n\t * @example\n\t * Creating a container from an API data object:\n\t * ```ts\n\t * const container = new ContainerBuilder({\n\t * \tcomponents: [\n\t * \t\t{\n\t * \t\t\tcontent: \"Some text here\",\n\t * \t\t\ttype: ComponentType.TextDisplay,\n\t * \t\t},\n\t * \t],\n\t * });\n\t * ```\n\t * @example\n\t * Creating a container using setters and API data:\n\t * ```ts\n\t * const container = new ContainerBuilder({\n\t * \tcomponents: [\n\t * \t\t{\n\t * \t\t\tcontent: \"# Heading\",\n\t * \t\t\ttype: ComponentType.TextDisplay,\n\t * \t\t},\n\t * \t],\n\t * })\n\t * .addSeparatorComponents(separator)\n\t * .addSectionComponents(section);\n\t * ```\n\t */\n\tpublic constructor({ components, ...data }: Partial = {}) {\n\t\tsuper({ type: ComponentType.Container, ...data });\n\t\tthis.components = (components?.map((component) => createComponentBuilder(component)) ??\n\t\t\t[]) as ContainerComponentBuilder[];\n\t}\n\n\t/**\n\t * Sets the accent color of this container.\n\t *\n\t * @param color - The color to use\n\t */\n\tpublic setAccentColor(color?: RGBTuple | number): this {\n\t\t// Data assertions\n\t\tcontainerColorPredicate.parse(color);\n\n\t\tif (Array.isArray(color)) {\n\t\t\tconst [red, green, blue] = color;\n\t\t\tthis.data.accent_color = (red << 16) + (green << 8) + blue;\n\t\t\treturn this;\n\t\t}\n\n\t\tthis.data.accent_color = color;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Clears the accent color of this container.\n\t */\n\tpublic clearAccentColor() {\n\t\tthis.data.accent_color = undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds action row components to this container.\n\t *\n\t * @param components - The action row components to add\n\t */\n\tpublic addActionRowComponents(\n\t\t...components: RestOrArray<\n\t\t\t| ActionRowBuilder\n\t\t\t| APIActionRowComponent\n\t\t\t| ((builder: ActionRowBuilder) => ActionRowBuilder)\n\t\t>\n\t) {\n\t\tthis.components.push(\n\t\t\t...normalizeArray(components).map((component) => resolveBuilder(component, ActionRowBuilder)),\n\t\t);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds file components to this container.\n\t *\n\t * @param components - The file components to add\n\t */\n\tpublic addFileComponents(\n\t\t...components: RestOrArray FileBuilder)>\n\t) {\n\t\tthis.components.push(...normalizeArray(components).map((component) => resolveBuilder(component, FileBuilder)));\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds media gallery components to this container.\n\t *\n\t * @param components - The media gallery components to add\n\t */\n\tpublic addMediaGalleryComponents(\n\t\t...components: RestOrArray<\n\t\t\tAPIMediaGalleryComponent | MediaGalleryBuilder | ((builder: MediaGalleryBuilder) => MediaGalleryBuilder)\n\t\t>\n\t) {\n\t\tthis.components.push(\n\t\t\t...normalizeArray(components).map((component) => resolveBuilder(component, MediaGalleryBuilder)),\n\t\t);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds section components to this container.\n\t *\n\t * @param components - The section components to add\n\t */\n\tpublic addSectionComponents(\n\t\t...components: RestOrArray SectionBuilder)>\n\t) {\n\t\tthis.components.push(...normalizeArray(components).map((component) => resolveBuilder(component, SectionBuilder)));\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds separator components to this container.\n\t *\n\t * @param components - The separator components to add\n\t */\n\tpublic addSeparatorComponents(\n\t\t...components: RestOrArray<\n\t\t\tAPISeparatorComponent | SeparatorBuilder | ((builder: SeparatorBuilder) => SeparatorBuilder)\n\t\t>\n\t) {\n\t\tthis.components.push(...normalizeArray(components).map((component) => resolveBuilder(component, SeparatorBuilder)));\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds text display components to this container.\n\t *\n\t * @param components - The text display components to add\n\t */\n\tpublic addTextDisplayComponents(\n\t\t...components: RestOrArray<\n\t\t\tAPITextDisplayComponent | TextDisplayBuilder | ((builder: TextDisplayBuilder) => TextDisplayBuilder)\n\t\t>\n\t) {\n\t\tthis.components.push(\n\t\t\t...normalizeArray(components).map((component) => resolveBuilder(component, TextDisplayBuilder)),\n\t\t);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Removes, replaces, or inserts components for this container.\n\t *\n\t * @param index - The index to start removing, replacing or inserting components\n\t * @param deleteCount - The amount of components to remove\n\t * @param components - The components to set\n\t */\n\tpublic spliceComponents(\n\t\tindex: number,\n\t\tdeleteCount: number,\n\t\t...components: RestOrArray\n\t) {\n\t\tthis.components.splice(\n\t\t\tindex,\n\t\t\tdeleteCount,\n\t\t\t...normalizeArray(components).map((component) =>\n\t\t\t\tcomponent instanceof ComponentBuilder ? component : createComponentBuilder(component),\n\t\t\t),\n\t\t);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the spoiler status of this container.\n\t *\n\t * @param spoiler - The spoiler status to use\n\t */\n\tpublic setSpoiler(spoiler = true) {\n\t\tthis.data.spoiler = spoilerPredicate.parse(spoiler);\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic toJSON(): APIContainerComponent {\n\t\treturn {\n\t\t\t...this.data,\n\t\t\tcomponents: this.components.map((component) => component.toJSON()),\n\t\t} as APIContainerComponent;\n\t}\n}\n","import { s } from '@sapphire/shapeshift';\nimport { SeparatorSpacingSize } from 'discord-api-types/v10';\nimport { colorPredicate } from '../../messages/embed/Assertions';\nimport { isValidationEnabled } from '../../util/validation';\nimport { ComponentBuilder } from '../Component';\nimport { ButtonBuilder } from '../button/Button';\nimport type { ContainerComponentBuilder } from './Container';\nimport type { MediaGalleryItemBuilder } from './MediaGalleryItem';\nimport type { TextDisplayBuilder } from './TextDisplay';\nimport { ThumbnailBuilder } from './Thumbnail';\n\nexport const unfurledMediaItemPredicate = s\n\t.object({\n\t\turl: s\n\t\t\t.string()\n\t\t\t.url(\n\t\t\t\t{ allowedProtocols: ['http:', 'https:', 'attachment:'] },\n\t\t\t\t{ message: 'Invalid protocol for media URL. Must be http:, https:, or attachment:' },\n\t\t\t),\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const descriptionPredicate = s\n\t.string()\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(1_024)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const filePredicate = s\n\t.object({\n\t\turl: s\n\t\t\t.string()\n\t\t\t.url({ allowedProtocols: ['attachment:'] }, { message: 'Invalid protocol for file URL. Must be attachment:' }),\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const spoilerPredicate = s.boolean();\n\nexport const dividerPredicate = s.boolean();\n\nexport const spacingPredicate = s.nativeEnum(SeparatorSpacingSize);\n\nexport const textDisplayContentPredicate = s\n\t.string()\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(4_000)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const accessoryPredicate = s\n\t.instance(ButtonBuilder)\n\t.or(s.instance(ThumbnailBuilder))\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const containerColorPredicate = colorPredicate.nullish();\n\nexport function assertReturnOfBuilder(\n\tinput: unknown,\n\tExpectedInstanceOf: new () => ReturnType,\n): asserts input is ReturnType {\n\ts.instance(ExpectedInstanceOf).setValidationEnabled(isValidationEnabled).parse(input);\n}\n\nexport function validateComponentArray<\n\tReturnType extends ContainerComponentBuilder | MediaGalleryItemBuilder = ContainerComponentBuilder,\n>(input: unknown, min: number, max: number, ExpectedInstanceOf?: new () => ReturnType): asserts input is ReturnType[] {\n\t(ExpectedInstanceOf ? s.instance(ExpectedInstanceOf) : s.instance(ComponentBuilder))\n\t\t.array()\n\t\t.lengthGreaterThanOrEqual(min)\n\t\t.lengthLessThanOrEqual(max)\n\t\t.setValidationEnabled(isValidationEnabled)\n\t\t.parse(input);\n}\n","import type { APIThumbnailComponent } from 'discord-api-types/v10';\nimport { ComponentType } from 'discord-api-types/v10';\nimport { ComponentBuilder } from '../Component';\nimport { descriptionPredicate, spoilerPredicate, unfurledMediaItemPredicate } from './Assertions';\n\nexport class ThumbnailBuilder extends ComponentBuilder {\n\t/**\n\t * Creates a new thumbnail from API data.\n\t *\n\t * @param data - The API data to create this thumbnail with\n\t * @example\n\t * Creating a thumbnail from an API data object:\n\t * ```ts\n\t * const thumbnail = new ThumbnailBuilder({\n\t * \tdescription: 'some text',\n\t * media: {\n\t * url: 'https://cdn.discordapp.com/embed/avatars/4.png',\n\t * },\n\t * });\n\t * ```\n\t * @example\n\t * Creating a thumbnail using setters and API data:\n\t * ```ts\n\t * const thumbnail = new ThumbnailBuilder({\n\t * \tmedia: {\n\t * url: 'attachment://image.png',\n\t * },\n\t * })\n\t * \t.setDescription('alt text');\n\t * ```\n\t */\n\tpublic constructor(data: Partial = {}) {\n\t\tsuper({\n\t\t\ttype: ComponentType.Thumbnail,\n\t\t\t...data,\n\t\t\tmedia: data.media ? { url: data.media.url } : undefined,\n\t\t});\n\t}\n\n\t/**\n\t * Sets the description of this thumbnail.\n\t *\n\t * @param description - The description to use\n\t */\n\tpublic setDescription(description: string) {\n\t\tthis.data.description = descriptionPredicate.parse(description);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Clears the description of this thumbnail.\n\t */\n\tpublic clearDescription() {\n\t\tthis.data.description = undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the spoiler status of this thumbnail.\n\t *\n\t * @param spoiler - The spoiler status to use\n\t */\n\tpublic setSpoiler(spoiler = true) {\n\t\tthis.data.spoiler = spoilerPredicate.parse(spoiler);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the media URL of this thumbnail.\n\t *\n\t * @param url - The URL to use\n\t */\n\tpublic setURL(url: string) {\n\t\tthis.data.media = unfurledMediaItemPredicate.parse({ url });\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritdoc ComponentBuilder.toJSON}\n\t */\n\tpublic override toJSON(): APIThumbnailComponent {\n\t\tunfurledMediaItemPredicate.parse(this.data.media);\n\n\t\treturn { ...this.data } as APIThumbnailComponent;\n\t}\n}\n","import { ComponentType, type APIFileComponent } from 'discord-api-types/v10';\nimport { ComponentBuilder } from '../Component';\nimport { filePredicate, spoilerPredicate } from './Assertions';\n\nexport class FileBuilder extends ComponentBuilder {\n\t/**\n\t * Creates a new file from API data.\n\t *\n\t * @param data - The API data to create this file with\n\t * @example\n\t * Creating a file from an API data object:\n\t * ```ts\n\t * const file = new FileBuilder({\n\t * \tspoiler: true,\n\t * \tfile: {\n\t * \t\turl: 'attachment://file.png',\n\t * \t},\n\t * });\n\t * ```\n\t * @example\n\t * Creating a file using setters and API data:\n\t * ```ts\n\t * const file = new FileBuilder({\n\t * \tfile: {\n\t * \t\turl: 'attachment://image.jpg',\n\t * \t},\n\t * })\n\t * \t.setSpoiler(false);\n\t * ```\n\t */\n\tpublic constructor(data: Partial = {}) {\n\t\tsuper({ type: ComponentType.File, ...data, file: data.file ? { url: data.file.url } : undefined });\n\t}\n\n\t/**\n\t * Sets the spoiler status of this file.\n\t *\n\t * @param spoiler - The spoiler status to use\n\t */\n\tpublic setSpoiler(spoiler = true) {\n\t\tthis.data.spoiler = spoilerPredicate.parse(spoiler);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the media URL of this file.\n\t *\n\t * @param url - The URL to use\n\t */\n\tpublic setURL(url: string) {\n\t\tthis.data.file = filePredicate.parse({ url });\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic override toJSON(): APIFileComponent {\n\t\tfilePredicate.parse(this.data.file);\n\n\t\treturn { ...this.data, file: { ...this.data.file } } as APIFileComponent;\n\t}\n}\n","import type { SeparatorSpacingSize, APISeparatorComponent } from 'discord-api-types/v10';\nimport { ComponentType } from 'discord-api-types/v10';\nimport { ComponentBuilder } from '../Component';\nimport { dividerPredicate, spacingPredicate } from './Assertions';\n\nexport class SeparatorBuilder extends ComponentBuilder {\n\t/**\n\t * Creates a new separator from API data.\n\t *\n\t * @param data - The API data to create this separator with\n\t * @example\n\t * Creating a separator from an API data object:\n\t * ```ts\n\t * const separator = new SeparatorBuilder({\n\t * \tspacing: SeparatorSpacingSize.Small,\n\t * divider: true,\n\t * });\n\t * ```\n\t * @example\n\t * Creating a separator using setters and API data:\n\t * ```ts\n\t * const separator = new SeparatorBuilder({\n\t * \tspacing: SeparatorSpacingSize.Large,\n\t * })\n\t * \t.setDivider(false);\n\t * ```\n\t */\n\tpublic constructor(data: Partial = {}) {\n\t\tsuper({\n\t\t\ttype: ComponentType.Separator,\n\t\t\t...data,\n\t\t});\n\t}\n\n\t/**\n\t * Sets whether this separator should show a divider line.\n\t *\n\t * @param divider - Whether to show a divider line\n\t */\n\tpublic setDivider(divider = true) {\n\t\tthis.data.divider = dividerPredicate.parse(divider);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the spacing of this separator.\n\t *\n\t * @param spacing - The spacing to use\n\t */\n\tpublic setSpacing(spacing: SeparatorSpacingSize) {\n\t\tthis.data.spacing = spacingPredicate.parse(spacing);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Clears the spacing of this separator.\n\t */\n\tpublic clearSpacing() {\n\t\tthis.data.spacing = undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic override toJSON(): APISeparatorComponent {\n\t\treturn { ...this.data } as APISeparatorComponent;\n\t}\n}\n","import type { APITextDisplayComponent } from 'discord-api-types/v10';\nimport { ComponentType } from 'discord-api-types/v10';\nimport { ComponentBuilder } from '../Component';\nimport { textDisplayContentPredicate } from './Assertions';\n\nexport class TextDisplayBuilder extends ComponentBuilder {\n\t/**\n\t * Creates a new text display from API data.\n\t *\n\t * @param data - The API data to create this text display with\n\t * @example\n\t * Creating a text display from an API data object:\n\t * ```ts\n\t * const textDisplay = new TextDisplayBuilder({\n\t * \tcontent: 'some text',\n\t * });\n\t * ```\n\t * @example\n\t * Creating a text display using setters and API data:\n\t * ```ts\n\t * const textDisplay = new TextDisplayBuilder({\n\t * \tcontent: 'old text',\n\t * })\n\t * \t.setContent('new text');\n\t * ```\n\t */\n\tpublic constructor(data: Partial = {}) {\n\t\tsuper({\n\t\t\ttype: ComponentType.TextDisplay,\n\t\t\t...data,\n\t\t});\n\t}\n\n\t/**\n\t * Sets the text of this text display.\n\t *\n\t * @param content - The text to use\n\t */\n\tpublic setContent(content: string) {\n\t\tthis.data.content = textDisplayContentPredicate.parse(content);\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic override toJSON(): APITextDisplayComponent {\n\t\ttextDisplayContentPredicate.parse(this.data.content);\n\n\t\treturn { ...this.data } as APITextDisplayComponent;\n\t}\n}\n","/* eslint-disable jsdoc/check-param-names */\n\nimport type { APIMediaGalleryComponent, APIMediaGalleryItem } from 'discord-api-types/v10';\nimport { ComponentType } from 'discord-api-types/v10';\nimport { normalizeArray, type RestOrArray } from '../../util/normalizeArray.js';\nimport { ComponentBuilder } from '../Component.js';\nimport { resolveBuilder } from '../Components.js';\nimport { assertReturnOfBuilder, validateComponentArray } from './Assertions.js';\nimport { MediaGalleryItemBuilder } from './MediaGalleryItem.js';\n\n/**\n * A builder that creates API-compatible JSON data for a container.\n */\nexport class MediaGalleryBuilder extends ComponentBuilder {\n\t/**\n\t * The components within this container.\n\t */\n\tpublic readonly items: MediaGalleryItemBuilder[];\n\n\t/**\n\t * Creates a new media gallery from API data.\n\t *\n\t * @param data - The API data to create this media gallery with\n\t * @example\n\t * Creating a media gallery from an API data object:\n\t * ```ts\n\t * const mediaGallery = new MediaGalleryBuilder({\n\t * \titems: [\n\t * \t\t{\n\t * \t\t\tdescription: \"Some text here\",\n\t * \t\t\tmedia: {\n\t * \t\t\t\turl: 'https://cdn.discordapp.com/embed/avatars/2.png',\n\t * \t\t\t},\n\t * \t\t},\n\t * \t],\n\t * });\n\t * ```\n\t * @example\n\t * Creating a media gallery using setters and API data:\n\t * ```ts\n\t * const mediaGallery = new MediaGalleryBuilder({\n\t * \titems: [\n\t * \t\t{\n\t * \t\t\tdescription: \"alt text\",\n\t * \t\t\tmedia: {\n\t * \t\t\t\turl: 'https://cdn.discordapp.com/embed/avatars/5.png',\n\t * \t\t\t},\n\t * \t\t},\n\t * \t],\n\t * })\n\t * \t.addItems(item2, item3);\n\t * ```\n\t */\n\tpublic constructor({ items, ...data }: Partial = {}) {\n\t\tsuper({ type: ComponentType.MediaGallery, ...data });\n\t\tthis.items = items?.map((item) => new MediaGalleryItemBuilder(item)) ?? [];\n\t}\n\n\t/**\n\t * Adds items to this media gallery.\n\t *\n\t * @param items - The items to add\n\t */\n\tpublic addItems(\n\t\t...items: RestOrArray<\n\t\t\tAPIMediaGalleryItem | MediaGalleryItemBuilder | ((builder: MediaGalleryItemBuilder) => MediaGalleryItemBuilder)\n\t\t>\n\t) {\n\t\tthis.items.push(\n\t\t\t...normalizeArray(items).map((input) => {\n\t\t\t\tconst result = resolveBuilder(input, MediaGalleryItemBuilder);\n\n\t\t\t\tassertReturnOfBuilder(result, MediaGalleryItemBuilder);\n\t\t\t\treturn result;\n\t\t\t}),\n\t\t);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Removes, replaces, or inserts media gallery items for this media gallery.\n\t *\n\t * @param index - The index to start removing, replacing or inserting items\n\t * @param deleteCount - The amount of items to remove\n\t * @param items - The items to insert\n\t */\n\tpublic spliceItems(\n\t\tindex: number,\n\t\tdeleteCount: number,\n\t\t...items: RestOrArray<\n\t\t\tAPIMediaGalleryItem | MediaGalleryItemBuilder | ((builder: MediaGalleryItemBuilder) => MediaGalleryItemBuilder)\n\t\t>\n\t) {\n\t\tthis.items.splice(\n\t\t\tindex,\n\t\t\tdeleteCount,\n\t\t\t...normalizeArray(items).map((input) => {\n\t\t\t\tconst result = resolveBuilder(input, MediaGalleryItemBuilder);\n\n\t\t\t\tassertReturnOfBuilder(result, MediaGalleryItemBuilder);\n\t\t\t\treturn result;\n\t\t\t}),\n\t\t);\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic toJSON(): APIMediaGalleryComponent {\n\t\tvalidateComponentArray(this.items, 1, 10, MediaGalleryItemBuilder);\n\t\treturn {\n\t\t\t...this.data,\n\t\t\titems: this.items.map((item) => item.toJSON()),\n\t\t} as APIMediaGalleryComponent;\n\t}\n}\n","import type { JSONEncodable } from '@discordjs/util';\nimport type { APIMediaGalleryItem } from 'discord-api-types/v10';\nimport { descriptionPredicate, spoilerPredicate, unfurledMediaItemPredicate } from './Assertions';\n\nexport class MediaGalleryItemBuilder implements JSONEncodable {\n\t/**\n\t * The API data associated with this media gallery item.\n\t */\n\tpublic readonly data: Partial;\n\n\t/**\n\t * Creates a new media gallery item from API data.\n\t *\n\t * @param data - The API data to create this media gallery item with\n\t * @example\n\t * Creating a media gallery item from an API data object:\n\t * ```ts\n\t * const item = new MediaGalleryItemBuilder({\n\t * \tdescription: \"Some text here\",\n\t * \tmedia: {\n\t * \t\turl: 'https://cdn.discordapp.com/embed/avatars/2.png',\n\t * \t},\n\t * });\n\t * ```\n\t * @example\n\t * Creating a media gallery item using setters and API data:\n\t * ```ts\n\t * const item = new MediaGalleryItemBuilder({\n\t * \tmedia: {\n\t * \t\turl: 'https://cdn.discordapp.com/embed/avatars/5.png',\n\t * \t},\n\t * })\n\t * \t.setDescription(\"alt text\");\n\t * ```\n\t */\n\tpublic constructor(data: Partial = {}) {\n\t\tthis.data = data;\n\t}\n\n\t/**\n\t * Sets the description of this media gallery item.\n\t *\n\t * @param description - The description to use\n\t */\n\tpublic setDescription(description: string) {\n\t\tthis.data.description = descriptionPredicate.parse(description);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Clears the description of this media gallery item.\n\t */\n\tpublic clearDescription() {\n\t\tthis.data.description = undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the spoiler status of this media gallery item.\n\t *\n\t * @param spoiler - The spoiler status to use\n\t */\n\tpublic setSpoiler(spoiler = true) {\n\t\tthis.data.spoiler = spoilerPredicate.parse(spoiler);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the media URL of this media gallery item.\n\t *\n\t * @param url - The URL to use\n\t */\n\tpublic setURL(url: string) {\n\t\tthis.data.media = unfurledMediaItemPredicate.parse({ url });\n\t\treturn this;\n\t}\n\n\t/**\n\t * Serializes this builder to API-compatible JSON data.\n\t *\n\t * @remarks\n\t * This method runs validations on the data before serializing it.\n\t * As such, it may throw an error if the data is invalid.\n\t */\n\tpublic toJSON(): APIMediaGalleryItem {\n\t\tunfurledMediaItemPredicate.parse(this.data.media);\n\n\t\treturn { ...this.data } as APIMediaGalleryItem;\n\t}\n}\n","/* eslint-disable jsdoc/check-param-names */\n\nimport type {\n\tAPIButtonComponent,\n\tAPISectionComponent,\n\tAPITextDisplayComponent,\n\tAPIThumbnailComponent,\n} from 'discord-api-types/v10';\nimport { ComponentType } from 'discord-api-types/v10';\nimport { ButtonBuilder, ThumbnailBuilder } from '../../index.js';\nimport { normalizeArray, type RestOrArray } from '../../util/normalizeArray.js';\nimport { ComponentBuilder } from '../Component.js';\nimport { createComponentBuilder, resolveBuilder } from '../Components.js';\nimport { accessoryPredicate, assertReturnOfBuilder, validateComponentArray } from './Assertions.js';\nimport { TextDisplayBuilder } from './TextDisplay.js';\n\n/**\n * A builder that creates API-compatible JSON data for a section.\n */\nexport class SectionBuilder extends ComponentBuilder {\n\t/**\n\t * The components within this section.\n\t */\n\tpublic readonly components: ComponentBuilder[];\n\n\t/**\n\t * The accessory of this section.\n\t */\n\tpublic readonly accessory?: ButtonBuilder | ThumbnailBuilder;\n\n\t/**\n\t * Creates a new section from API data.\n\t *\n\t * @param data - The API data to create this section with\n\t * @example\n\t * Creating a section from an API data object:\n\t * ```ts\n\t * const section = new SectionBuilder({\n\t * \tcomponents: [\n\t * \t\t{\n\t * \t\t\tcontent: \"Some text here\",\n\t * \t\t\ttype: ComponentType.TextDisplay,\n\t * \t\t},\n\t * \t],\n\t * accessory: {\n\t * media: {\n\t * url: 'https://cdn.discordapp.com/embed/avatars/3.png',\n\t * },\n\t * }\n\t * });\n\t * ```\n\t * @example\n\t * Creating a section using setters and API data:\n\t * ```ts\n\t * const section = new SectionBuilder({\n\t * \tcomponents: [\n\t * \t\t{\n\t * \t\t\tcontent: \"# Heading\",\n\t * \t\t\ttype: ComponentType.TextDisplay,\n\t * \t\t},\n\t * \t],\n\t * })\n\t * \t.setPrimaryButtonAccessory(button);\n\t * ```\n\t */\n\tpublic constructor({ components, accessory, ...data }: Partial = {}) {\n\t\tsuper({ type: ComponentType.Section, ...data });\n\t\tthis.components = (components?.map((component) => createComponentBuilder(component)) ?? []) as ComponentBuilder[];\n\t\tthis.accessory = accessory ? createComponentBuilder(accessory) : undefined;\n\t}\n\n\t/**\n\t * Sets the accessory of this section to a button.\n\t *\n\t * @param accessory - The accessory to use\n\t */\n\tpublic setButtonAccessory(\n\t\taccessory: APIButtonComponent | ButtonBuilder | ((builder: ButtonBuilder) => ButtonBuilder),\n\t): this {\n\t\tReflect.set(this, 'accessory', accessoryPredicate.parse(resolveBuilder(accessory, ButtonBuilder)));\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the accessory of this section to a thumbnail.\n\t *\n\t * @param accessory - The accessory to use\n\t */\n\tpublic setThumbnailAccessory(\n\t\taccessory: APIThumbnailComponent | ThumbnailBuilder | ((builder: ThumbnailBuilder) => ThumbnailBuilder),\n\t): this {\n\t\tReflect.set(this, 'accessory', accessoryPredicate.parse(resolveBuilder(accessory, ThumbnailBuilder)));\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds text display components to this section.\n\t *\n\t * @param components - The text display components to add\n\t */\n\tpublic addTextDisplayComponents(\n\t\t...components: RestOrArray TextDisplayBuilder)>\n\t) {\n\t\tthis.components.push(\n\t\t\t...normalizeArray(components).map((input) => {\n\t\t\t\tconst result = resolveBuilder(input, TextDisplayBuilder);\n\n\t\t\t\tassertReturnOfBuilder(result, TextDisplayBuilder);\n\t\t\t\treturn result;\n\t\t\t}),\n\t\t);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Removes, replaces, or inserts text display components for this section.\n\t *\n\t * @param index - The index to start removing, replacing or inserting text display components\n\t * @param deleteCount - The amount of text display components to remove\n\t * @param components - The text display components to insert\n\t */\n\tpublic spliceTextDisplayComponents(\n\t\tindex: number,\n\t\tdeleteCount: number,\n\t\t...components: RestOrArray<\n\t\t\tAPITextDisplayComponent | TextDisplayBuilder | ((builder: TextDisplayBuilder) => TextDisplayBuilder)\n\t\t>\n\t) {\n\t\tthis.components.splice(\n\t\t\tindex,\n\t\t\tdeleteCount,\n\t\t\t...normalizeArray(components).map((input) => {\n\t\t\t\tconst result = resolveBuilder(input, TextDisplayBuilder);\n\n\t\t\t\tassertReturnOfBuilder(result, TextDisplayBuilder);\n\t\t\t\treturn result;\n\t\t\t}),\n\t\t);\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic toJSON(): APISectionComponent {\n\t\tvalidateComponentArray(this.components, 1, 3, TextDisplayBuilder);\n\t\treturn {\n\t\t\t...this.data,\n\t\t\tcomponents: this.components.map((component) => component.toJSON()),\n\t\t\taccessory: accessoryPredicate.parse(this.accessory).toJSON(),\n\t\t} as APISectionComponent;\n\t}\n}\n","/* eslint-disable jsdoc/check-param-names */\n\nimport type { JSONEncodable } from '@discordjs/util';\nimport type {\n\tAPITextInputComponent,\n\tAPIActionRowComponent,\n\tAPIComponentInModalActionRow,\n\tAPILabelComponent,\n\tAPIModalInteractionResponseCallbackData,\n\tAPITextDisplayComponent,\n} from 'discord-api-types/v10';\nimport { ComponentType } from 'discord-api-types/v10';\nimport { ActionRowBuilder, type ModalActionRowComponentBuilder } from '../../components/ActionRow.js';\nimport { customIdValidator } from '../../components/Assertions.js';\nimport { createComponentBuilder, resolveBuilder } from '../../components/Components.js';\nimport { LabelBuilder } from '../../components/label/Label.js';\nimport { TextInputBuilder } from '../../components/textInput/TextInput.js';\nimport { TextDisplayBuilder } from '../../components/v2/TextDisplay.js';\nimport { normalizeArray, type RestOrArray } from '../../util/normalizeArray.js';\nimport { titleValidator, validateRequiredParameters } from './Assertions.js';\n\n/**\n * A builder that creates API-compatible JSON data for modals.\n */\nexport class ModalBuilder implements JSONEncodable {\n\t/**\n\t * The API data associated with this modal.\n\t */\n\tpublic readonly data: Partial;\n\n\t/**\n\t * The components within this modal.\n\t */\n\tpublic readonly components: (ActionRowBuilder | LabelBuilder | TextDisplayBuilder)[] =\n\t\t[];\n\n\t/**\n\t * Creates a new modal from API data.\n\t *\n\t * @param data - The API data to create this modal with\n\t */\n\tpublic constructor({ components, ...data }: Partial = {}) {\n\t\tthis.data = { ...data };\n\t\tthis.components = (components?.map((component) => createComponentBuilder(component)) ?? []) as (\n\t\t\t| ActionRowBuilder\n\t\t\t| LabelBuilder\n\t\t)[];\n\t}\n\n\t/**\n\t * Sets the title of this modal.\n\t *\n\t * @param title - The title to use\n\t */\n\tpublic setTitle(title: string) {\n\t\tthis.data.title = titleValidator.parse(title);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the custom id of this modal.\n\t *\n\t * @param customId - The custom id to use\n\t */\n\tpublic setCustomId(customId: string) {\n\t\tthis.data.custom_id = customIdValidator.parse(customId);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds components to this modal.\n\t *\n\t * @param components - The components to add\n\t * @deprecated Use {@link ModalBuilder.addLabelComponents} or {@link ModalBuilder.addTextDisplayComponents} instead\n\t */\n\tpublic addComponents(\n\t\t...components: RestOrArray<\n\t\t\t| ActionRowBuilder\n\t\t\t| APIActionRowComponent\n\t\t\t| APILabelComponent\n\t\t\t| APITextDisplayComponent\n\t\t\t| APITextInputComponent\n\t\t\t| LabelBuilder\n\t\t\t| TextDisplayBuilder\n\t\t\t| TextInputBuilder\n\t\t>\n\t) {\n\t\tthis.components.push(\n\t\t\t...normalizeArray(components).map((component, idx) => {\n\t\t\t\tif (\n\t\t\t\t\tcomponent instanceof ActionRowBuilder ||\n\t\t\t\t\tcomponent instanceof LabelBuilder ||\n\t\t\t\t\tcomponent instanceof TextDisplayBuilder\n\t\t\t\t) {\n\t\t\t\t\treturn component;\n\t\t\t\t}\n\n\t\t\t\t// Deprecated support\n\t\t\t\tif (component instanceof TextInputBuilder) {\n\t\t\t\t\treturn new ActionRowBuilder().addComponents(component);\n\t\t\t\t}\n\n\t\t\t\tif ('type' in component) {\n\t\t\t\t\tif (component.type === ComponentType.ActionRow) {\n\t\t\t\t\t\treturn new ActionRowBuilder(component);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (component.type === ComponentType.Label) {\n\t\t\t\t\t\treturn new LabelBuilder(component);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (component.type === ComponentType.TextDisplay) {\n\t\t\t\t\t\treturn new TextDisplayBuilder(component);\n\t\t\t\t\t}\n\n\t\t\t\t\t// Deprecated, should go in a label component\n\t\t\t\t\tif (component.type === ComponentType.TextInput) {\n\t\t\t\t\t\treturn new ActionRowBuilder().addComponents(\n\t\t\t\t\t\t\tnew TextInputBuilder(component),\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tthrow new TypeError(`Invalid component passed in ModalBuilder.addComponents at index ${idx}!`);\n\t\t\t}),\n\t\t);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds label components to this modal.\n\t *\n\t * @param components - The components to add\n\t */\n\tpublic addLabelComponents(\n\t\t...components: RestOrArray LabelBuilder)>\n\t) {\n\t\tconst normalized = normalizeArray(components);\n\t\tconst resolved = normalized.map((label) => resolveBuilder(label, LabelBuilder));\n\n\t\tthis.components.push(...resolved);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds text display components to this modal.\n\t *\n\t * @param components - The components to add\n\t */\n\tpublic addTextDisplayComponents(\n\t\t...components: RestOrArray<\n\t\t\tAPITextDisplayComponent | TextDisplayBuilder | ((builder: TextDisplayBuilder) => TextDisplayBuilder)\n\t\t>\n\t) {\n\t\tconst normalized = normalizeArray(components);\n\t\tconst resolved = normalized.map((row) => resolveBuilder(row, TextDisplayBuilder));\n\n\t\tthis.components.push(...resolved);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds action rows to this modal.\n\t *\n\t * @param components - The components to add\n\t * @deprecated Use {@link ModalBuilder.addLabelComponents} instead\n\t */\n\tpublic addActionRowComponents(\n\t\t...components: RestOrArray<\n\t\t\t| ActionRowBuilder\n\t\t\t| APIActionRowComponent\n\t\t\t| ((\n\t\t\t\t\tbuilder: ActionRowBuilder,\n\t\t\t ) => ActionRowBuilder)\n\t\t>\n\t) {\n\t\tconst normalized = normalizeArray(components);\n\t\tconst resolved = normalized.map((row) => resolveBuilder(row, ActionRowBuilder));\n\n\t\tthis.components.push(...resolved);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the labels for this modal.\n\t *\n\t * @param components - The components to set\n\t */\n\tpublic setLabelComponents(\n\t\t...components: RestOrArray LabelBuilder)>\n\t) {\n\t\tconst normalized = normalizeArray(components);\n\t\tthis.spliceLabelComponents(0, this.components.length, ...normalized);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Removes, replaces, or inserts labels for this modal.\n\t *\n\t * @remarks\n\t * This method behaves similarly\n\t * to {@link https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/splice | Array.prototype.splice()}.\n\t * The maximum amount of labels that can be added is 5.\n\t *\n\t * It's useful for modifying and adjusting order of the already-existing labels of a modal.\n\t * @example\n\t * Remove the first label:\n\t * ```ts\n\t * modal.spliceLabelComponents(0, 1);\n\t * ```\n\t * @example\n\t * Remove the first n labels:\n\t * ```ts\n\t * const n = 4;\n\t * modal.spliceLabelComponents(0, n);\n\t * ```\n\t * @example\n\t * Remove the last label:\n\t * ```ts\n\t * modal.spliceLabelComponents(-1, 1);\n\t * ```\n\t * @param index - The index to start at\n\t * @param deleteCount - The number of labels to remove\n\t * @param labels - The replacing label objects\n\t */\n\tpublic spliceLabelComponents(\n\t\tindex: number,\n\t\tdeleteCount: number,\n\t\t...labels: (APILabelComponent | LabelBuilder | ((builder: LabelBuilder) => LabelBuilder))[]\n\t): this {\n\t\tconst resolved = labels.map((label) => resolveBuilder(label, LabelBuilder));\n\t\tthis.components.splice(index, deleteCount, ...resolved);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets components for this modal.\n\t *\n\t * @param components - The components to set\n\t * @deprecated Use {@link ModalBuilder.setLabelComponents} instead\n\t */\n\tpublic setComponents(\n\t\t...components: RestOrArray | LabelBuilder | TextDisplayBuilder>\n\t) {\n\t\tthis.components.splice(0, this.components.length, ...normalizeArray(components));\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic toJSON(): APIModalInteractionResponseCallbackData {\n\t\tvalidateRequiredParameters(this.data.custom_id, this.data.title, this.components);\n\n\t\treturn {\n\t\t\t...this.data,\n\t\t\tcomponents: this.components.map((component) => component.toJSON()),\n\t\t} as APIModalInteractionResponseCallbackData;\n\t}\n}\n","import { s } from '@sapphire/shapeshift';\nimport { ActionRowBuilder, type ModalActionRowComponentBuilder } from '../../components/ActionRow.js';\nimport { customIdValidator } from '../../components/Assertions.js';\nimport { LabelBuilder } from '../../components/label/Label.js';\nimport { TextDisplayBuilder } from '../../components/v2/TextDisplay.js';\nimport { isValidationEnabled } from '../../util/validation.js';\n\nexport const titleValidator = s\n\t.string()\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(45)\n\t.setValidationEnabled(isValidationEnabled);\nexport const componentsValidator = s\n\t.union([s.instance(ActionRowBuilder), s.instance(LabelBuilder), s.instance(TextDisplayBuilder)])\n\t.array()\n\t.lengthGreaterThanOrEqual(1)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport function validateRequiredParameters(\n\tcustomId?: string,\n\ttitle?: string,\n\tcomponents?: (ActionRowBuilder | LabelBuilder | TextDisplayBuilder)[],\n) {\n\tcustomIdValidator.parse(customId);\n\ttitleValidator.parse(title);\n\tcomponentsValidator.parse(components);\n}\n","import { s } from '@sapphire/shapeshift';\nimport {\n\tApplicationIntegrationType,\n\tInteractionContextType,\n\tLocale,\n\ttype APIApplicationCommandOptionChoice,\n\ttype LocalizationMap,\n} from 'discord-api-types/v10';\nimport { isValidationEnabled } from '../../util/validation.js';\nimport type { ToAPIApplicationCommandOptions } from './SlashCommandBuilder.js';\nimport type { SlashCommandSubcommandBuilder, SlashCommandSubcommandGroupBuilder } from './SlashCommandSubcommands.js';\nimport type { ApplicationCommandOptionBase } from './mixins/ApplicationCommandOptionBase.js';\n\nconst namePredicate = s\n\t.string()\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(32)\n\t.regex(/^[\\p{Ll}\\p{Lm}\\p{Lo}\\p{N}\\p{sc=Devanagari}\\p{sc=Thai}_-]+$/u)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport function validateName(name: unknown): asserts name is string {\n\tnamePredicate.parse(name);\n}\n\nconst descriptionPredicate = s\n\t.string()\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(100)\n\t.setValidationEnabled(isValidationEnabled);\nconst localePredicate = s.nativeEnum(Locale);\n\nexport function validateDescription(description: unknown): asserts description is string {\n\tdescriptionPredicate.parse(description);\n}\n\nconst maxArrayLengthPredicate = s.unknown().array().lengthLessThanOrEqual(25).setValidationEnabled(isValidationEnabled);\nexport function validateLocale(locale: unknown) {\n\treturn localePredicate.parse(locale);\n}\n\nexport function validateMaxOptionsLength(options: unknown): asserts options is ToAPIApplicationCommandOptions[] {\n\tmaxArrayLengthPredicate.parse(options);\n}\n\nexport function validateRequiredParameters(\n\tname: string,\n\tdescription: string,\n\toptions: ToAPIApplicationCommandOptions[],\n) {\n\t// Assert name matches all conditions\n\tvalidateName(name);\n\n\t// Assert description conditions\n\tvalidateDescription(description);\n\n\t// Assert options conditions\n\tvalidateMaxOptionsLength(options);\n}\n\nconst booleanPredicate = s.boolean();\n\nexport function validateDefaultPermission(value: unknown): asserts value is boolean {\n\tbooleanPredicate.parse(value);\n}\n\nexport function validateRequired(required: unknown): asserts required is boolean {\n\tbooleanPredicate.parse(required);\n}\n\nconst choicesLengthPredicate = s.number().lessThanOrEqual(25).setValidationEnabled(isValidationEnabled);\n\nexport function validateChoicesLength(amountAdding: number, choices?: APIApplicationCommandOptionChoice[]): void {\n\tchoicesLengthPredicate.parse((choices?.length ?? 0) + amountAdding);\n}\n\nexport function assertReturnOfBuilder<\n\tReturnType extends ApplicationCommandOptionBase | SlashCommandSubcommandBuilder | SlashCommandSubcommandGroupBuilder,\n>(input: unknown, ExpectedInstanceOf: new () => ReturnType): asserts input is ReturnType {\n\ts.instance(ExpectedInstanceOf).parse(input);\n}\n\nexport const localizationMapPredicate = s\n\t.object(Object.fromEntries(Object.values(Locale).map((locale) => [locale, s.string().nullish()])))\n\t.strict()\n\t.nullish()\n\t.setValidationEnabled(isValidationEnabled);\n\nexport function validateLocalizationMap(value: unknown): asserts value is LocalizationMap {\n\tlocalizationMapPredicate.parse(value);\n}\n\nconst dmPermissionPredicate = s.boolean().nullish();\n\nexport function validateDMPermission(value: unknown): asserts value is boolean | null | undefined {\n\tdmPermissionPredicate.parse(value);\n}\n\nconst memberPermissionPredicate = s\n\t.union([\n\t\ts.bigint().transform((value) => value.toString()),\n\t\ts\n\t\t\t.number()\n\t\t\t.safeInt()\n\t\t\t.transform((value) => value.toString()),\n\t\ts.string().regex(/^\\d+$/),\n\t])\n\t.nullish();\n\nexport function validateDefaultMemberPermissions(permissions: unknown) {\n\treturn memberPermissionPredicate.parse(permissions);\n}\n\nexport function validateNSFW(value: unknown): asserts value is boolean {\n\tbooleanPredicate.parse(value);\n}\n\nexport const contextsPredicate = s.array(\n\ts.nativeEnum(InteractionContextType).setValidationEnabled(isValidationEnabled),\n);\n\nexport const integrationTypesPredicate = s.array(\n\ts.nativeEnum(ApplicationIntegrationType).setValidationEnabled(isValidationEnabled),\n);\n","import type {\n\tAPIApplicationCommandOption,\n\tApplicationIntegrationType,\n\tInteractionContextType,\n\tLocalizationMap,\n\tPermissions,\n} from 'discord-api-types/v10';\nimport { mix } from 'ts-mixer';\nimport { SharedNameAndDescription } from './mixins/NameAndDescription.js';\nimport { SharedSlashCommand } from './mixins/SharedSlashCommand.js';\nimport { SharedSlashCommandOptions } from './mixins/SharedSlashCommandOptions.js';\nimport { SharedSlashCommandSubcommands } from './mixins/SharedSubcommands.js';\n\n/**\n * A builder that creates API-compatible JSON data for slash commands.\n */\n@mix(SharedSlashCommandOptions, SharedNameAndDescription, SharedSlashCommandSubcommands, SharedSlashCommand)\nexport class SlashCommandBuilder {\n\t/**\n\t * The name of this command.\n\t */\n\tpublic readonly name: string = undefined!;\n\n\t/**\n\t * The name localizations of this command.\n\t */\n\tpublic readonly name_localizations?: LocalizationMap;\n\n\t/**\n\t * The description of this command.\n\t */\n\tpublic readonly description: string = undefined!;\n\n\t/**\n\t * The description localizations of this command.\n\t */\n\tpublic readonly description_localizations?: LocalizationMap;\n\n\t/**\n\t * The options of this command.\n\t */\n\tpublic readonly options: ToAPIApplicationCommandOptions[] = [];\n\n\t/**\n\t * The contexts for this command.\n\t */\n\tpublic readonly contexts?: InteractionContextType[];\n\n\t/**\n\t * Whether this command is enabled by default when the application is added to a guild.\n\t *\n\t * @deprecated Use {@link SharedSlashCommand.setDefaultMemberPermissions} or {@link SharedSlashCommand.setDMPermission} instead.\n\t */\n\tpublic readonly default_permission: boolean | undefined = undefined;\n\n\t/**\n\t * The set of permissions represented as a bit set for the command.\n\t */\n\tpublic readonly default_member_permissions: Permissions | null | undefined = undefined;\n\n\t/**\n\t * Indicates whether the command is available in direct messages with the application.\n\t *\n\t * @remarks\n\t * By default, commands are visible. This property is only for global commands.\n\t * @deprecated\n\t * Use {@link SlashCommandBuilder.contexts} instead.\n\t */\n\tpublic readonly dm_permission: boolean | undefined = undefined;\n\n\t/**\n\t * The integration types for this command.\n\t */\n\tpublic readonly integration_types?: ApplicationIntegrationType[];\n\n\t/**\n\t * Whether this command is NSFW.\n\t */\n\tpublic readonly nsfw: boolean | undefined = undefined;\n}\n\nexport interface SlashCommandBuilder\n\textends\n\t\tSharedNameAndDescription,\n\t\tSharedSlashCommandOptions,\n\t\tSharedSlashCommandSubcommands,\n\t\tSharedSlashCommand {}\n\n/**\n * An interface specifically for slash command subcommands.\n */\nexport interface SlashCommandSubcommandsOnlyBuilder\n\textends\n\t\tSharedNameAndDescription,\n\t\tSharedSlashCommandSubcommands,\n\t\tSharedSlashCommand {}\n\n/**\n * An interface specifically for slash command options.\n */\nexport interface SlashCommandOptionsOnlyBuilder\n\textends SharedNameAndDescription, SharedSlashCommandOptions, SharedSlashCommand {}\n\n/**\n * An interface that ensures the `toJSON()` call will return something\n * that can be serialized into API-compatible data.\n */\nexport interface ToAPIApplicationCommandOptions {\n\ttoJSON(): APIApplicationCommandOption;\n}\n","import type { LocaleString, LocalizationMap } from 'discord-api-types/v10';\nimport { validateDescription, validateLocale, validateName } from '../Assertions.js';\n\n/**\n * This mixin holds name and description symbols for slash commands.\n */\nexport class SharedNameAndDescription {\n\t/**\n\t * The name of this command.\n\t */\n\tpublic readonly name!: string;\n\n\t/**\n\t * The name localizations of this command.\n\t */\n\tpublic readonly name_localizations?: LocalizationMap;\n\n\t/**\n\t * The description of this command.\n\t */\n\tpublic readonly description!: string;\n\n\t/**\n\t * The description localizations of this command.\n\t */\n\tpublic readonly description_localizations?: LocalizationMap;\n\n\t/**\n\t * Sets the name of this command.\n\t *\n\t * @param name - The name to use\n\t */\n\tpublic setName(name: string): this {\n\t\t// Assert the name matches the conditions\n\t\tvalidateName(name);\n\n\t\tReflect.set(this, 'name', name);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the description of this command.\n\t *\n\t * @param description - The description to use\n\t */\n\tpublic setDescription(description: string) {\n\t\t// Assert the description matches the conditions\n\t\tvalidateDescription(description);\n\n\t\tReflect.set(this, 'description', description);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets a name localization for this command.\n\t *\n\t * @param locale - The locale to set\n\t * @param localizedName - The localized name for the given `locale`\n\t */\n\tpublic setNameLocalization(locale: LocaleString, localizedName: string | null) {\n\t\tif (!this.name_localizations) {\n\t\t\tReflect.set(this, 'name_localizations', {});\n\t\t}\n\n\t\tconst parsedLocale = validateLocale(locale);\n\n\t\tif (localizedName === null) {\n\t\t\tthis.name_localizations![parsedLocale] = null;\n\t\t\treturn this;\n\t\t}\n\n\t\tvalidateName(localizedName);\n\n\t\tthis.name_localizations![parsedLocale] = localizedName;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the name localizations for this command.\n\t *\n\t * @param localizedNames - The object of localized names to set\n\t */\n\tpublic setNameLocalizations(localizedNames: LocalizationMap | null) {\n\t\tif (localizedNames === null) {\n\t\t\tReflect.set(this, 'name_localizations', null);\n\t\t\treturn this;\n\t\t}\n\n\t\tReflect.set(this, 'name_localizations', {});\n\n\t\tfor (const args of Object.entries(localizedNames)) {\n\t\t\tthis.setNameLocalization(...(args as [LocaleString, string | null]));\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets a description localization for this command.\n\t *\n\t * @param locale - The locale to set\n\t * @param localizedDescription - The localized description for the given locale\n\t */\n\tpublic setDescriptionLocalization(locale: LocaleString, localizedDescription: string | null) {\n\t\tif (!this.description_localizations) {\n\t\t\tReflect.set(this, 'description_localizations', {});\n\t\t}\n\n\t\tconst parsedLocale = validateLocale(locale);\n\n\t\tif (localizedDescription === null) {\n\t\t\tthis.description_localizations![parsedLocale] = null;\n\t\t\treturn this;\n\t\t}\n\n\t\tvalidateDescription(localizedDescription);\n\n\t\tthis.description_localizations![parsedLocale] = localizedDescription;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the description localizations for this command.\n\t *\n\t * @param localizedDescriptions - The object of localized descriptions to set\n\t */\n\tpublic setDescriptionLocalizations(localizedDescriptions: LocalizationMap | null) {\n\t\tif (localizedDescriptions === null) {\n\t\t\tReflect.set(this, 'description_localizations', null);\n\t\t\treturn this;\n\t\t}\n\n\t\tReflect.set(this, 'description_localizations', {});\n\t\tfor (const args of Object.entries(localizedDescriptions)) {\n\t\t\tthis.setDescriptionLocalization(...(args as [LocaleString, string | null]));\n\t\t}\n\n\t\treturn this;\n\t}\n}\n","import {\n\tApplicationCommandType,\n\ttype ApplicationIntegrationType,\n\ttype InteractionContextType,\n\ttype LocalizationMap,\n\ttype Permissions,\n\ttype RESTPostAPIChatInputApplicationCommandsJSONBody,\n} from 'discord-api-types/v10';\nimport type { RestOrArray } from '../../../util/normalizeArray.js';\nimport { normalizeArray } from '../../../util/normalizeArray.js';\nimport {\n\tcontextsPredicate,\n\tintegrationTypesPredicate,\n\tvalidateDMPermission,\n\tvalidateDefaultMemberPermissions,\n\tvalidateDefaultPermission,\n\tvalidateLocalizationMap,\n\tvalidateNSFW,\n\tvalidateRequiredParameters,\n} from '../Assertions.js';\nimport type { ToAPIApplicationCommandOptions } from '../SlashCommandBuilder.js';\n\n/**\n * This mixin holds symbols that can be shared in slashcommands independent of options or subcommands.\n */\nexport class SharedSlashCommand {\n\tpublic readonly name: string = undefined!;\n\n\tpublic readonly name_localizations?: LocalizationMap;\n\n\tpublic readonly description: string = undefined!;\n\n\tpublic readonly description_localizations?: LocalizationMap;\n\n\tpublic readonly options: ToAPIApplicationCommandOptions[] = [];\n\n\tpublic readonly contexts?: InteractionContextType[];\n\n\t/**\n\t * @deprecated Use {@link SharedSlashCommand.setDefaultMemberPermissions} or {@link SharedSlashCommand.setDMPermission} instead.\n\t */\n\tpublic readonly default_permission: boolean | undefined = undefined;\n\n\tpublic readonly default_member_permissions: Permissions | null | undefined = undefined;\n\n\t/**\n\t * @deprecated Use {@link SharedSlashCommand.contexts} instead.\n\t */\n\tpublic readonly dm_permission: boolean | undefined = undefined;\n\n\tpublic readonly integration_types?: ApplicationIntegrationType[];\n\n\tpublic readonly nsfw: boolean | undefined = undefined;\n\n\t/**\n\t * Sets the contexts of this command.\n\t *\n\t * @param contexts - The contexts\n\t */\n\tpublic setContexts(...contexts: RestOrArray) {\n\t\tReflect.set(this, 'contexts', contextsPredicate.parse(normalizeArray(contexts)));\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the integration types of this command.\n\t *\n\t * @param integrationTypes - The integration types\n\t */\n\tpublic setIntegrationTypes(...integrationTypes: RestOrArray) {\n\t\tReflect.set(this, 'integration_types', integrationTypesPredicate.parse(normalizeArray(integrationTypes)));\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether the command is enabled by default when the application is added to a guild.\n\t *\n\t * @remarks\n\t * If set to `false`, you will have to later `PUT` the permissions for this command.\n\t * @param value - Whether or not to enable this command by default\n\t * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions}\n\t * @deprecated Use {@link SharedSlashCommand.setDefaultMemberPermissions} or {@link SharedSlashCommand.setDMPermission} instead.\n\t */\n\tpublic setDefaultPermission(value: boolean) {\n\t\t// Assert the value matches the conditions\n\t\tvalidateDefaultPermission(value);\n\n\t\tReflect.set(this, 'default_permission', value);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the default permissions a member should have in order to run the command.\n\t *\n\t * @remarks\n\t * You can set this to `'0'` to disable the command by default.\n\t * @param permissions - The permissions bit field to set\n\t * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions}\n\t */\n\tpublic setDefaultMemberPermissions(permissions: Permissions | bigint | number | null | undefined) {\n\t\t// Assert the value and parse it\n\t\tconst permissionValue = validateDefaultMemberPermissions(permissions);\n\n\t\tReflect.set(this, 'default_member_permissions', permissionValue);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets if the command is available in direct messages with the application.\n\t *\n\t * @remarks\n\t * By default, commands are visible. This method is only for global commands.\n\t * @param enabled - Whether the command should be enabled in direct messages\n\t * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions}\n\t * @deprecated\n\t * Use {@link SharedSlashCommand.setContexts} instead.\n\t */\n\tpublic setDMPermission(enabled: boolean | null | undefined) {\n\t\t// Assert the value matches the conditions\n\t\tvalidateDMPermission(enabled);\n\n\t\tReflect.set(this, 'dm_permission', enabled);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether this command is NSFW.\n\t *\n\t * @param nsfw - Whether this command is NSFW\n\t */\n\tpublic setNSFW(nsfw = true) {\n\t\t// Assert the value matches the conditions\n\t\tvalidateNSFW(nsfw);\n\t\tReflect.set(this, 'nsfw', nsfw);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Serializes this builder to API-compatible JSON data.\n\t *\n\t * @remarks\n\t * This method runs validations on the data before serializing it.\n\t * As such, it may throw an error if the data is invalid.\n\t */\n\tpublic toJSON(): RESTPostAPIChatInputApplicationCommandsJSONBody {\n\t\tvalidateRequiredParameters(this.name, this.description, this.options);\n\n\t\tvalidateLocalizationMap(this.name_localizations);\n\t\tvalidateLocalizationMap(this.description_localizations);\n\n\t\treturn {\n\t\t\t...this,\n\t\t\ttype: ApplicationCommandType.ChatInput,\n\t\t\toptions: this.options.map((option) => option.toJSON()),\n\t\t};\n\t}\n}\n","import { ApplicationCommandOptionType, type APIApplicationCommandAttachmentOption } from 'discord-api-types/v10';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase.js';\n\n/**\n * A slash command attachment option.\n */\nexport class SlashCommandAttachmentOption extends ApplicationCommandOptionBase {\n\t/**\n\t * The type of this option.\n\t */\n\tpublic override readonly type = ApplicationCommandOptionType.Attachment as const;\n\n\t/**\n\t * {@inheritDoc ApplicationCommandOptionBase.toJSON}\n\t */\n\tpublic toJSON(): APIApplicationCommandAttachmentOption {\n\t\tthis.runRequiredValidations();\n\n\t\treturn { ...this };\n\t}\n}\n","import type { APIApplicationCommandBasicOption, ApplicationCommandOptionType } from 'discord-api-types/v10';\nimport { validateRequiredParameters, validateRequired, validateLocalizationMap } from '../Assertions.js';\nimport { SharedNameAndDescription } from './NameAndDescription.js';\n\n/**\n * The base application command option builder that contains common symbols for application command builders.\n */\nexport abstract class ApplicationCommandOptionBase extends SharedNameAndDescription {\n\t/**\n\t * The type of this option.\n\t */\n\tpublic abstract readonly type: ApplicationCommandOptionType;\n\n\t/**\n\t * Whether this option is required.\n\t *\n\t * @defaultValue `false`\n\t */\n\tpublic readonly required: boolean = false;\n\n\t/**\n\t * Sets whether this option is required.\n\t *\n\t * @param required - Whether this option should be required\n\t */\n\tpublic setRequired(required: boolean) {\n\t\t// Assert that you actually passed a boolean\n\t\tvalidateRequired(required);\n\n\t\tReflect.set(this, 'required', required);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Serializes this builder to API-compatible JSON data.\n\t *\n\t * @remarks\n\t * This method runs validations on the data before serializing it.\n\t * As such, it may throw an error if the data is invalid.\n\t */\n\tpublic abstract toJSON(): APIApplicationCommandBasicOption;\n\n\t/**\n\t * This method runs required validators on this builder.\n\t */\n\tprotected runRequiredValidations() {\n\t\tvalidateRequiredParameters(this.name, this.description, []);\n\n\t\t// Validate localizations\n\t\tvalidateLocalizationMap(this.name_localizations);\n\t\tvalidateLocalizationMap(this.description_localizations);\n\n\t\t// Assert that you actually passed a boolean\n\t\tvalidateRequired(this.required);\n\t}\n}\n","import { ApplicationCommandOptionType, type APIApplicationCommandBooleanOption } from 'discord-api-types/v10';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase.js';\n\n/**\n * A slash command boolean option.\n */\nexport class SlashCommandBooleanOption extends ApplicationCommandOptionBase {\n\t/**\n\t * The type of this option.\n\t */\n\tpublic readonly type = ApplicationCommandOptionType.Boolean as const;\n\n\t/**\n\t * {@inheritDoc ApplicationCommandOptionBase.toJSON}\n\t */\n\tpublic toJSON(): APIApplicationCommandBooleanOption {\n\t\tthis.runRequiredValidations();\n\n\t\treturn { ...this };\n\t}\n}\n","import { ApplicationCommandOptionType, type APIApplicationCommandChannelOption } from 'discord-api-types/v10';\nimport { mix } from 'ts-mixer';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase.js';\nimport { ApplicationCommandOptionChannelTypesMixin } from '../mixins/ApplicationCommandOptionChannelTypesMixin.js';\n\n/**\n * A slash command channel option.\n */\n@mix(ApplicationCommandOptionChannelTypesMixin)\nexport class SlashCommandChannelOption extends ApplicationCommandOptionBase {\n\t/**\n\t * The type of this option.\n\t */\n\tpublic override readonly type = ApplicationCommandOptionType.Channel as const;\n\n\t/**\n\t * {@inheritDoc ApplicationCommandOptionBase.toJSON}\n\t */\n\tpublic toJSON(): APIApplicationCommandChannelOption {\n\t\tthis.runRequiredValidations();\n\n\t\treturn { ...this };\n\t}\n}\n\nexport interface SlashCommandChannelOption extends ApplicationCommandOptionChannelTypesMixin {}\n","import { s } from '@sapphire/shapeshift';\nimport { ChannelType } from 'discord-api-types/v10';\nimport { normalizeArray, type RestOrArray } from '../../../util/normalizeArray';\n\n/**\n * The allowed channel types used for a channel option in a slash command builder.\n *\n * @privateRemarks This can't be dynamic because const enums are erased at runtime.\n * @internal\n */\nconst allowedChannelTypes = [\n\tChannelType.GuildText,\n\tChannelType.GuildVoice,\n\tChannelType.GuildCategory,\n\tChannelType.GuildAnnouncement,\n\tChannelType.AnnouncementThread,\n\tChannelType.PublicThread,\n\tChannelType.PrivateThread,\n\tChannelType.GuildStageVoice,\n\tChannelType.GuildForum,\n\tChannelType.GuildMedia,\n] as const;\n\n/**\n * The type of allowed channel types used for a channel option.\n */\nexport type ApplicationCommandOptionAllowedChannelTypes = (typeof allowedChannelTypes)[number];\n\nconst channelTypesPredicate = s.array(s.union(allowedChannelTypes.map((type) => s.literal(type))));\n\n/**\n * This mixin holds channel type symbols used for options.\n */\nexport class ApplicationCommandOptionChannelTypesMixin {\n\t/**\n\t * The channel types of this option.\n\t */\n\tpublic readonly channel_types?: ApplicationCommandOptionAllowedChannelTypes[];\n\n\t/**\n\t * Adds channel types to this option.\n\t *\n\t * @param channelTypes - The channel types\n\t */\n\tpublic addChannelTypes(...channelTypes: RestOrArray) {\n\t\tif (this.channel_types === undefined) {\n\t\t\tReflect.set(this, 'channel_types', []);\n\t\t}\n\n\t\tthis.channel_types!.push(...channelTypesPredicate.parse(normalizeArray(channelTypes)));\n\n\t\treturn this;\n\t}\n}\n","import { s } from '@sapphire/shapeshift';\nimport { ApplicationCommandOptionType, type APIApplicationCommandIntegerOption } from 'discord-api-types/v10';\nimport { mix } from 'ts-mixer';\nimport { ApplicationCommandNumericOptionMinMaxValueMixin } from '../mixins/ApplicationCommandNumericOptionMinMaxValueMixin.js';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase.js';\nimport { ApplicationCommandOptionWithAutocompleteMixin } from '../mixins/ApplicationCommandOptionWithAutocompleteMixin.js';\nimport { ApplicationCommandOptionWithChoicesMixin } from '../mixins/ApplicationCommandOptionWithChoicesMixin.js';\n\nconst numberValidator = s.number().int();\n\n/**\n * A slash command integer option.\n */\n@mix(\n\tApplicationCommandNumericOptionMinMaxValueMixin,\n\tApplicationCommandOptionWithAutocompleteMixin,\n\tApplicationCommandOptionWithChoicesMixin,\n)\nexport class SlashCommandIntegerOption\n\textends ApplicationCommandOptionBase\n\timplements ApplicationCommandNumericOptionMinMaxValueMixin\n{\n\t/**\n\t * The type of this option.\n\t */\n\tpublic readonly type = ApplicationCommandOptionType.Integer as const;\n\n\t/**\n\t * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMaxValue}\n\t */\n\tpublic setMaxValue(max: number): this {\n\t\tnumberValidator.parse(max);\n\n\t\tReflect.set(this, 'max_value', max);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMinValue}\n\t */\n\tpublic setMinValue(min: number): this {\n\t\tnumberValidator.parse(min);\n\n\t\tReflect.set(this, 'min_value', min);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ApplicationCommandOptionBase.toJSON}\n\t */\n\tpublic toJSON(): APIApplicationCommandIntegerOption {\n\t\tthis.runRequiredValidations();\n\n\t\tif (this.autocomplete && Array.isArray(this.choices) && this.choices.length > 0) {\n\t\t\tthrow new RangeError('Autocomplete and choices are mutually exclusive to each other.');\n\t\t}\n\n\t\treturn { ...this } as APIApplicationCommandIntegerOption;\n\t}\n}\n\nexport interface SlashCommandIntegerOption\n\textends\n\t\tApplicationCommandNumericOptionMinMaxValueMixin,\n\t\tApplicationCommandOptionWithChoicesMixin,\n\t\tApplicationCommandOptionWithAutocompleteMixin {}\n","/**\n * This mixin holds minimum and maximum symbols used for options.\n */\nexport abstract class ApplicationCommandNumericOptionMinMaxValueMixin {\n\t/**\n\t * The maximum value of this option.\n\t */\n\tpublic readonly max_value?: number;\n\n\t/**\n\t * The minimum value of this option.\n\t */\n\tpublic readonly min_value?: number;\n\n\t/**\n\t * Sets the maximum number value of this option.\n\t *\n\t * @param max - The maximum value this option can be\n\t */\n\tpublic abstract setMaxValue(max: number): this;\n\n\t/**\n\t * Sets the minimum number value of this option.\n\t *\n\t * @param min - The minimum value this option can be\n\t */\n\tpublic abstract setMinValue(min: number): this;\n}\n","import { s } from '@sapphire/shapeshift';\nimport type { ApplicationCommandOptionType } from 'discord-api-types/v10';\n\nconst booleanPredicate = s.boolean();\n\n/**\n * This mixin holds choices and autocomplete symbols used for options.\n */\nexport class ApplicationCommandOptionWithAutocompleteMixin {\n\t/**\n\t * Whether this option utilizes autocomplete.\n\t */\n\tpublic readonly autocomplete?: boolean;\n\n\t/**\n\t * The type of this option.\n\t *\n\t * @privateRemarks Since this is present and this is a mixin, this is needed.\n\t */\n\tpublic readonly type!: ApplicationCommandOptionType;\n\n\t/**\n\t * Whether this option uses autocomplete.\n\t *\n\t * @param autocomplete - Whether this option should use autocomplete\n\t */\n\tpublic setAutocomplete(autocomplete: boolean): this {\n\t\t// Assert that you actually passed a boolean\n\t\tbooleanPredicate.parse(autocomplete);\n\n\t\tif (autocomplete && 'choices' in this && Array.isArray(this.choices) && this.choices.length > 0) {\n\t\t\tthrow new RangeError('Autocomplete and choices are mutually exclusive to each other.');\n\t\t}\n\n\t\tReflect.set(this, 'autocomplete', autocomplete);\n\n\t\treturn this;\n\t}\n}\n","import { s } from '@sapphire/shapeshift';\nimport { ApplicationCommandOptionType, type APIApplicationCommandOptionChoice } from 'discord-api-types/v10';\nimport { normalizeArray, type RestOrArray } from '../../../util/normalizeArray.js';\nimport { localizationMapPredicate, validateChoicesLength } from '../Assertions.js';\n\nconst stringPredicate = s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(100);\nconst numberPredicate = s.number().greaterThan(Number.NEGATIVE_INFINITY).lessThan(Number.POSITIVE_INFINITY);\nconst choicesPredicate = s\n\t.object({\n\t\tname: stringPredicate,\n\t\tname_localizations: localizationMapPredicate,\n\t\tvalue: s.union([stringPredicate, numberPredicate]),\n\t})\n\t.array();\n\n/**\n * This mixin holds choices and autocomplete symbols used for options.\n */\nexport class ApplicationCommandOptionWithChoicesMixin {\n\t/**\n\t * The choices of this option.\n\t */\n\tpublic readonly choices?: APIApplicationCommandOptionChoice[];\n\n\t/**\n\t * The type of this option.\n\t *\n\t * @privateRemarks Since this is present and this is a mixin, this is needed.\n\t */\n\tpublic readonly type!: ApplicationCommandOptionType;\n\n\t/**\n\t * Adds multiple choices to this option.\n\t *\n\t * @param choices - The choices to add\n\t */\n\tpublic addChoices(...choices: RestOrArray>): this {\n\t\tconst normalizedChoices = normalizeArray(choices);\n\t\tif (normalizedChoices.length > 0 && 'autocomplete' in this && this.autocomplete) {\n\t\t\tthrow new RangeError('Autocomplete and choices are mutually exclusive to each other.');\n\t\t}\n\n\t\tchoicesPredicate.parse(normalizedChoices);\n\n\t\tif (this.choices === undefined) {\n\t\t\tReflect.set(this, 'choices', []);\n\t\t}\n\n\t\tvalidateChoicesLength(normalizedChoices.length, this.choices);\n\n\t\tfor (const { name, name_localizations, value } of normalizedChoices) {\n\t\t\t// Validate the value\n\t\t\tif (this.type === ApplicationCommandOptionType.String) {\n\t\t\t\tstringPredicate.parse(value);\n\t\t\t} else {\n\t\t\t\tnumberPredicate.parse(value);\n\t\t\t}\n\n\t\t\tthis.choices!.push({ name, name_localizations, value });\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets multiple choices for this option.\n\t *\n\t * @param choices - The choices to set\n\t */\n\tpublic setChoices>(...choices: RestOrArray): this {\n\t\tconst normalizedChoices = normalizeArray(choices);\n\t\tif (normalizedChoices.length > 0 && 'autocomplete' in this && this.autocomplete) {\n\t\t\tthrow new RangeError('Autocomplete and choices are mutually exclusive to each other.');\n\t\t}\n\n\t\tchoicesPredicate.parse(normalizedChoices);\n\n\t\tReflect.set(this, 'choices', []);\n\t\tthis.addChoices(normalizedChoices);\n\n\t\treturn this;\n\t}\n}\n","import { ApplicationCommandOptionType, type APIApplicationCommandMentionableOption } from 'discord-api-types/v10';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase.js';\n\n/**\n * A slash command mentionable option.\n */\nexport class SlashCommandMentionableOption extends ApplicationCommandOptionBase {\n\t/**\n\t * The type of this option.\n\t */\n\tpublic readonly type = ApplicationCommandOptionType.Mentionable as const;\n\n\t/**\n\t * {@inheritDoc ApplicationCommandOptionBase.toJSON}\n\t */\n\tpublic toJSON(): APIApplicationCommandMentionableOption {\n\t\tthis.runRequiredValidations();\n\n\t\treturn { ...this };\n\t}\n}\n","import { s } from '@sapphire/shapeshift';\nimport { ApplicationCommandOptionType, type APIApplicationCommandNumberOption } from 'discord-api-types/v10';\nimport { mix } from 'ts-mixer';\nimport { ApplicationCommandNumericOptionMinMaxValueMixin } from '../mixins/ApplicationCommandNumericOptionMinMaxValueMixin.js';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase.js';\nimport { ApplicationCommandOptionWithAutocompleteMixin } from '../mixins/ApplicationCommandOptionWithAutocompleteMixin.js';\nimport { ApplicationCommandOptionWithChoicesMixin } from '../mixins/ApplicationCommandOptionWithChoicesMixin.js';\n\nconst numberValidator = s.number();\n\n/**\n * A slash command number option.\n */\n@mix(\n\tApplicationCommandNumericOptionMinMaxValueMixin,\n\tApplicationCommandOptionWithAutocompleteMixin,\n\tApplicationCommandOptionWithChoicesMixin,\n)\nexport class SlashCommandNumberOption\n\textends ApplicationCommandOptionBase\n\timplements ApplicationCommandNumericOptionMinMaxValueMixin\n{\n\t/**\n\t * The type of this option.\n\t */\n\tpublic readonly type = ApplicationCommandOptionType.Number as const;\n\n\t/**\n\t * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMaxValue}\n\t */\n\tpublic setMaxValue(max: number): this {\n\t\tnumberValidator.parse(max);\n\n\t\tReflect.set(this, 'max_value', max);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMinValue}\n\t */\n\tpublic setMinValue(min: number): this {\n\t\tnumberValidator.parse(min);\n\n\t\tReflect.set(this, 'min_value', min);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ApplicationCommandOptionBase.toJSON}\n\t */\n\tpublic toJSON(): APIApplicationCommandNumberOption {\n\t\tthis.runRequiredValidations();\n\n\t\tif (this.autocomplete && Array.isArray(this.choices) && this.choices.length > 0) {\n\t\t\tthrow new RangeError('Autocomplete and choices are mutually exclusive to each other.');\n\t\t}\n\n\t\treturn { ...this } as APIApplicationCommandNumberOption;\n\t}\n}\n\nexport interface SlashCommandNumberOption\n\textends\n\t\tApplicationCommandNumericOptionMinMaxValueMixin,\n\t\tApplicationCommandOptionWithChoicesMixin,\n\t\tApplicationCommandOptionWithAutocompleteMixin {}\n","import { ApplicationCommandOptionType, type APIApplicationCommandRoleOption } from 'discord-api-types/v10';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase.js';\n\n/**\n * A slash command role option.\n */\nexport class SlashCommandRoleOption extends ApplicationCommandOptionBase {\n\t/**\n\t * The type of this option.\n\t */\n\tpublic override readonly type = ApplicationCommandOptionType.Role as const;\n\n\t/**\n\t * {@inheritDoc ApplicationCommandOptionBase.toJSON}\n\t */\n\tpublic toJSON(): APIApplicationCommandRoleOption {\n\t\tthis.runRequiredValidations();\n\n\t\treturn { ...this };\n\t}\n}\n","import { s } from '@sapphire/shapeshift';\nimport { ApplicationCommandOptionType, type APIApplicationCommandStringOption } from 'discord-api-types/v10';\nimport { mix } from 'ts-mixer';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase.js';\nimport { ApplicationCommandOptionWithAutocompleteMixin } from '../mixins/ApplicationCommandOptionWithAutocompleteMixin.js';\nimport { ApplicationCommandOptionWithChoicesMixin } from '../mixins/ApplicationCommandOptionWithChoicesMixin.js';\n\nconst minLengthValidator = s.number().greaterThanOrEqual(0).lessThanOrEqual(6_000);\nconst maxLengthValidator = s.number().greaterThanOrEqual(1).lessThanOrEqual(6_000);\n\n/**\n * A slash command string option.\n */\n@mix(ApplicationCommandOptionWithAutocompleteMixin, ApplicationCommandOptionWithChoicesMixin)\nexport class SlashCommandStringOption extends ApplicationCommandOptionBase {\n\t/**\n\t * The type of this option.\n\t */\n\tpublic readonly type = ApplicationCommandOptionType.String as const;\n\n\t/**\n\t * The maximum length of this option.\n\t */\n\tpublic readonly max_length?: number;\n\n\t/**\n\t * The minimum length of this option.\n\t */\n\tpublic readonly min_length?: number;\n\n\t/**\n\t * Sets the maximum length of this string option.\n\t *\n\t * @param max - The maximum length this option can be\n\t */\n\tpublic setMaxLength(max: number): this {\n\t\tmaxLengthValidator.parse(max);\n\n\t\tReflect.set(this, 'max_length', max);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the minimum length of this string option.\n\t *\n\t * @param min - The minimum length this option can be\n\t */\n\tpublic setMinLength(min: number): this {\n\t\tminLengthValidator.parse(min);\n\n\t\tReflect.set(this, 'min_length', min);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ApplicationCommandOptionBase.toJSON}\n\t */\n\tpublic toJSON(): APIApplicationCommandStringOption {\n\t\tthis.runRequiredValidations();\n\n\t\tif (this.autocomplete && Array.isArray(this.choices) && this.choices.length > 0) {\n\t\t\tthrow new RangeError('Autocomplete and choices are mutually exclusive to each other.');\n\t\t}\n\n\t\treturn { ...this } as APIApplicationCommandStringOption;\n\t}\n}\n\nexport interface SlashCommandStringOption\n\textends ApplicationCommandOptionWithChoicesMixin, ApplicationCommandOptionWithAutocompleteMixin {}\n","import { ApplicationCommandOptionType, type APIApplicationCommandUserOption } from 'discord-api-types/v10';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase.js';\n\n/**\n * A slash command user option.\n */\nexport class SlashCommandUserOption extends ApplicationCommandOptionBase {\n\t/**\n\t * The type of this option.\n\t */\n\tpublic readonly type = ApplicationCommandOptionType.User as const;\n\n\t/**\n\t * {@inheritDoc ApplicationCommandOptionBase.toJSON}\n\t */\n\tpublic toJSON(): APIApplicationCommandUserOption {\n\t\tthis.runRequiredValidations();\n\n\t\treturn { ...this };\n\t}\n}\n","import { assertReturnOfBuilder, validateMaxOptionsLength } from '../Assertions.js';\nimport type { ToAPIApplicationCommandOptions } from '../SlashCommandBuilder';\nimport { SlashCommandAttachmentOption } from '../options/attachment.js';\nimport { SlashCommandBooleanOption } from '../options/boolean.js';\nimport { SlashCommandChannelOption } from '../options/channel.js';\nimport { SlashCommandIntegerOption } from '../options/integer.js';\nimport { SlashCommandMentionableOption } from '../options/mentionable.js';\nimport { SlashCommandNumberOption } from '../options/number.js';\nimport { SlashCommandRoleOption } from '../options/role.js';\nimport { SlashCommandStringOption } from '../options/string.js';\nimport { SlashCommandUserOption } from '../options/user.js';\nimport type { ApplicationCommandOptionBase } from './ApplicationCommandOptionBase.js';\n\n/**\n * This mixin holds symbols that can be shared in slash command options.\n *\n * @typeParam TypeAfterAddingOptions - The type this class should return after adding an option.\n */\nexport class SharedSlashCommandOptions<\n\tTypeAfterAddingOptions extends SharedSlashCommandOptions,\n> {\n\tpublic readonly options!: ToAPIApplicationCommandOptions[];\n\n\t/**\n\t * Adds a boolean option.\n\t *\n\t * @param input - A function that returns an option builder or an already built builder\n\t */\n\tpublic addBooleanOption(\n\t\tinput: SlashCommandBooleanOption | ((builder: SlashCommandBooleanOption) => SlashCommandBooleanOption),\n\t) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandBooleanOption);\n\t}\n\n\t/**\n\t * Adds a user option.\n\t *\n\t * @param input - A function that returns an option builder or an already built builder\n\t */\n\tpublic addUserOption(input: SlashCommandUserOption | ((builder: SlashCommandUserOption) => SlashCommandUserOption)) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandUserOption);\n\t}\n\n\t/**\n\t * Adds a channel option.\n\t *\n\t * @param input - A function that returns an option builder or an already built builder\n\t */\n\tpublic addChannelOption(\n\t\tinput: SlashCommandChannelOption | ((builder: SlashCommandChannelOption) => SlashCommandChannelOption),\n\t) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandChannelOption);\n\t}\n\n\t/**\n\t * Adds a role option.\n\t *\n\t * @param input - A function that returns an option builder or an already built builder\n\t */\n\tpublic addRoleOption(input: SlashCommandRoleOption | ((builder: SlashCommandRoleOption) => SlashCommandRoleOption)) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandRoleOption);\n\t}\n\n\t/**\n\t * Adds an attachment option.\n\t *\n\t * @param input - A function that returns an option builder or an already built builder\n\t */\n\tpublic addAttachmentOption(\n\t\tinput: SlashCommandAttachmentOption | ((builder: SlashCommandAttachmentOption) => SlashCommandAttachmentOption),\n\t) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandAttachmentOption);\n\t}\n\n\t/**\n\t * Adds a mentionable option.\n\t *\n\t * @param input - A function that returns an option builder or an already built builder\n\t */\n\tpublic addMentionableOption(\n\t\tinput: SlashCommandMentionableOption | ((builder: SlashCommandMentionableOption) => SlashCommandMentionableOption),\n\t) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandMentionableOption);\n\t}\n\n\t/**\n\t * Adds a string option.\n\t *\n\t * @param input - A function that returns an option builder or an already built builder\n\t */\n\tpublic addStringOption(\n\t\tinput: SlashCommandStringOption | ((builder: SlashCommandStringOption) => SlashCommandStringOption),\n\t) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandStringOption);\n\t}\n\n\t/**\n\t * Adds an integer option.\n\t *\n\t * @param input - A function that returns an option builder or an already built builder\n\t */\n\tpublic addIntegerOption(\n\t\tinput: SlashCommandIntegerOption | ((builder: SlashCommandIntegerOption) => SlashCommandIntegerOption),\n\t) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandIntegerOption);\n\t}\n\n\t/**\n\t * Adds a number option.\n\t *\n\t * @param input - A function that returns an option builder or an already built builder\n\t */\n\tpublic addNumberOption(\n\t\tinput: SlashCommandNumberOption | ((builder: SlashCommandNumberOption) => SlashCommandNumberOption),\n\t) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandNumberOption);\n\t}\n\n\t/**\n\t * Where the actual adding magic happens. ✨\n\t *\n\t * @param input - The input. What else?\n\t * @param Instance - The instance of whatever is being added\n\t * @internal\n\t */\n\tprivate _sharedAddOptionMethod(\n\t\tinput: OptionBuilder | ((builder: OptionBuilder) => OptionBuilder),\n\t\tInstance: new () => OptionBuilder,\n\t): TypeAfterAddingOptions {\n\t\tconst { options } = this;\n\n\t\t// First, assert options conditions - we cannot have more than 25 options\n\t\tvalidateMaxOptionsLength(options);\n\n\t\t// Get the final result\n\t\tconst result = typeof input === 'function' ? input(new Instance()) : input;\n\n\t\tassertReturnOfBuilder(result, Instance);\n\n\t\t// Push it\n\t\toptions.push(result);\n\n\t\treturn this as unknown as TypeAfterAddingOptions;\n\t}\n}\n","import {\n\tApplicationCommandOptionType,\n\ttype APIApplicationCommandSubcommandGroupOption,\n\ttype APIApplicationCommandSubcommandOption,\n} from 'discord-api-types/v10';\nimport { mix } from 'ts-mixer';\nimport { assertReturnOfBuilder, validateMaxOptionsLength, validateRequiredParameters } from './Assertions.js';\nimport type { ToAPIApplicationCommandOptions } from './SlashCommandBuilder.js';\nimport type { ApplicationCommandOptionBase } from './mixins/ApplicationCommandOptionBase.js';\nimport { SharedNameAndDescription } from './mixins/NameAndDescription.js';\nimport { SharedSlashCommandOptions } from './mixins/SharedSlashCommandOptions.js';\n\n/**\n * Represents a folder for subcommands.\n *\n * @see {@link https://discord.com/developers/docs/interactions/application-commands#subcommands-and-subcommand-groups}\n */\n@mix(SharedNameAndDescription)\nexport class SlashCommandSubcommandGroupBuilder implements ToAPIApplicationCommandOptions {\n\t/**\n\t * The name of this subcommand group.\n\t */\n\tpublic readonly name: string = undefined!;\n\n\t/**\n\t * The description of this subcommand group.\n\t */\n\tpublic readonly description: string = undefined!;\n\n\t/**\n\t * The subcommands within this subcommand group.\n\t */\n\tpublic readonly options: SlashCommandSubcommandBuilder[] = [];\n\n\t/**\n\t * Adds a new subcommand to this group.\n\t *\n\t * @param input - A function that returns a subcommand builder or an already built builder\n\t */\n\tpublic addSubcommand(\n\t\tinput:\n\t\t\t| SlashCommandSubcommandBuilder\n\t\t\t| ((subcommandGroup: SlashCommandSubcommandBuilder) => SlashCommandSubcommandBuilder),\n\t) {\n\t\tconst { options } = this;\n\n\t\t// First, assert options conditions - we cannot have more than 25 options\n\t\tvalidateMaxOptionsLength(options);\n\n\t\t// Get the final result\n\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\tconst result = typeof input === 'function' ? input(new SlashCommandSubcommandBuilder()) : input;\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\tassertReturnOfBuilder(result, SlashCommandSubcommandBuilder);\n\n\t\t// Push it\n\t\toptions.push(result);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Serializes this builder to API-compatible JSON data.\n\t *\n\t * @remarks\n\t * This method runs validations on the data before serializing it.\n\t * As such, it may throw an error if the data is invalid.\n\t */\n\tpublic toJSON(): APIApplicationCommandSubcommandGroupOption {\n\t\tvalidateRequiredParameters(this.name, this.description, this.options);\n\n\t\treturn {\n\t\t\ttype: ApplicationCommandOptionType.SubcommandGroup,\n\t\t\tname: this.name,\n\t\t\tname_localizations: this.name_localizations,\n\t\t\tdescription: this.description,\n\t\t\tdescription_localizations: this.description_localizations,\n\t\t\toptions: this.options.map((option) => option.toJSON()),\n\t\t};\n\t}\n}\n\nexport interface SlashCommandSubcommandGroupBuilder extends SharedNameAndDescription {}\n\n/**\n * A builder that creates API-compatible JSON data for slash command subcommands.\n *\n * @see {@link https://discord.com/developers/docs/interactions/application-commands#subcommands-and-subcommand-groups}\n */\n@mix(SharedNameAndDescription, SharedSlashCommandOptions)\nexport class SlashCommandSubcommandBuilder implements ToAPIApplicationCommandOptions {\n\t/**\n\t * The name of this subcommand.\n\t */\n\tpublic readonly name: string = undefined!;\n\n\t/**\n\t * The description of this subcommand.\n\t */\n\tpublic readonly description: string = undefined!;\n\n\t/**\n\t * The options within this subcommand.\n\t */\n\tpublic readonly options: ApplicationCommandOptionBase[] = [];\n\n\t/**\n\t * Serializes this builder to API-compatible JSON data.\n\t *\n\t * @remarks\n\t * This method runs validations on the data before serializing it.\n\t * As such, it may throw an error if the data is invalid.\n\t */\n\tpublic toJSON(): APIApplicationCommandSubcommandOption {\n\t\tvalidateRequiredParameters(this.name, this.description, this.options);\n\n\t\treturn {\n\t\t\ttype: ApplicationCommandOptionType.Subcommand,\n\t\t\tname: this.name,\n\t\t\tname_localizations: this.name_localizations,\n\t\t\tdescription: this.description,\n\t\t\tdescription_localizations: this.description_localizations,\n\t\t\toptions: this.options.map((option) => option.toJSON()),\n\t\t};\n\t}\n}\n\nexport interface SlashCommandSubcommandBuilder\n\textends SharedNameAndDescription, SharedSlashCommandOptions {}\n","import { assertReturnOfBuilder, validateMaxOptionsLength } from '../Assertions.js';\nimport type { ToAPIApplicationCommandOptions } from '../SlashCommandBuilder.js';\nimport { SlashCommandSubcommandBuilder, SlashCommandSubcommandGroupBuilder } from '../SlashCommandSubcommands.js';\n\n/**\n * This mixin holds symbols that can be shared in slash subcommands.\n *\n * @typeParam TypeAfterAddingSubcommands - The type this class should return after adding a subcommand or subcommand group.\n */\nexport class SharedSlashCommandSubcommands<\n\tTypeAfterAddingSubcommands extends SharedSlashCommandSubcommands,\n> {\n\tpublic readonly options: ToAPIApplicationCommandOptions[] = [];\n\n\t/**\n\t * Adds a new subcommand group to this command.\n\t *\n\t * @param input - A function that returns a subcommand group builder or an already built builder\n\t */\n\tpublic addSubcommandGroup(\n\t\tinput:\n\t\t\t| SlashCommandSubcommandGroupBuilder\n\t\t\t| ((subcommandGroup: SlashCommandSubcommandGroupBuilder) => SlashCommandSubcommandGroupBuilder),\n\t): TypeAfterAddingSubcommands {\n\t\tconst { options } = this;\n\n\t\t// First, assert options conditions - we cannot have more than 25 options\n\t\tvalidateMaxOptionsLength(options);\n\n\t\t// Get the final result\n\t\tconst result = typeof input === 'function' ? input(new SlashCommandSubcommandGroupBuilder()) : input;\n\n\t\tassertReturnOfBuilder(result, SlashCommandSubcommandGroupBuilder);\n\n\t\t// Push it\n\t\toptions.push(result);\n\n\t\treturn this as unknown as TypeAfterAddingSubcommands;\n\t}\n\n\t/**\n\t * Adds a new subcommand to this command.\n\t *\n\t * @param input - A function that returns a subcommand builder or an already built builder\n\t */\n\tpublic addSubcommand(\n\t\tinput:\n\t\t\t| SlashCommandSubcommandBuilder\n\t\t\t| ((subcommandGroup: SlashCommandSubcommandBuilder) => SlashCommandSubcommandBuilder),\n\t): TypeAfterAddingSubcommands {\n\t\tconst { options } = this;\n\n\t\t// First, assert options conditions - we cannot have more than 25 options\n\t\tvalidateMaxOptionsLength(options);\n\n\t\t// Get the final result\n\t\tconst result = typeof input === 'function' ? input(new SlashCommandSubcommandBuilder()) : input;\n\n\t\tassertReturnOfBuilder(result, SlashCommandSubcommandBuilder);\n\n\t\t// Push it\n\t\toptions.push(result);\n\n\t\treturn this as unknown as TypeAfterAddingSubcommands;\n\t}\n}\n","import { s } from '@sapphire/shapeshift';\nimport { ApplicationCommandType, ApplicationIntegrationType, InteractionContextType } from 'discord-api-types/v10';\nimport { isValidationEnabled } from '../../util/validation.js';\nimport type { ContextMenuCommandType } from './ContextMenuCommandBuilder.js';\n\nconst namePredicate = s\n\t.string()\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(32)\n\t.regex(/\\S/)\n\t.setValidationEnabled(isValidationEnabled);\nconst typePredicate = s\n\t.union([s.literal(ApplicationCommandType.User), s.literal(ApplicationCommandType.Message)])\n\t.setValidationEnabled(isValidationEnabled);\nconst booleanPredicate = s.boolean();\n\nexport function validateDefaultPermission(value: unknown): asserts value is boolean {\n\tbooleanPredicate.parse(value);\n}\n\nexport function validateName(name: unknown): asserts name is string {\n\tnamePredicate.parse(name);\n}\n\nexport function validateType(type: unknown): asserts type is ContextMenuCommandType {\n\ttypePredicate.parse(type);\n}\n\nexport function validateRequiredParameters(name: string, type: number) {\n\t// Assert name matches all conditions\n\tvalidateName(name);\n\n\t// Assert type is valid\n\tvalidateType(type);\n}\n\nconst dmPermissionPredicate = s.boolean().nullish();\n\nexport function validateDMPermission(value: unknown): asserts value is boolean | null | undefined {\n\tdmPermissionPredicate.parse(value);\n}\n\nconst memberPermissionPredicate = s\n\t.union([\n\t\ts.bigint().transform((value) => value.toString()),\n\t\ts\n\t\t\t.number()\n\t\t\t.safeInt()\n\t\t\t.transform((value) => value.toString()),\n\t\ts.string().regex(/^\\d+$/),\n\t])\n\t.nullish();\n\nexport function validateDefaultMemberPermissions(permissions: unknown) {\n\treturn memberPermissionPredicate.parse(permissions);\n}\n\nexport const contextsPredicate = s.array(\n\ts.nativeEnum(InteractionContextType).setValidationEnabled(isValidationEnabled),\n);\n\nexport const integrationTypesPredicate = s.array(\n\ts.nativeEnum(ApplicationIntegrationType).setValidationEnabled(isValidationEnabled),\n);\n","import type {\n\tApplicationCommandType,\n\tApplicationIntegrationType,\n\tInteractionContextType,\n\tLocaleString,\n\tLocalizationMap,\n\tPermissions,\n\tRESTPostAPIContextMenuApplicationCommandsJSONBody,\n} from 'discord-api-types/v10';\nimport type { RestOrArray } from '../../util/normalizeArray.js';\nimport { normalizeArray } from '../../util/normalizeArray.js';\nimport { validateLocale, validateLocalizationMap } from '../slashCommands/Assertions.js';\nimport {\n\tvalidateRequiredParameters,\n\tvalidateName,\n\tvalidateType,\n\tvalidateDefaultPermission,\n\tvalidateDefaultMemberPermissions,\n\tvalidateDMPermission,\n\tcontextsPredicate,\n\tintegrationTypesPredicate,\n} from './Assertions.js';\n\n/**\n * The type a context menu command can be.\n */\nexport type ContextMenuCommandType = ApplicationCommandType.Message | ApplicationCommandType.User;\n\n/**\n * A builder that creates API-compatible JSON data for context menu commands.\n */\nexport class ContextMenuCommandBuilder {\n\t/**\n\t * The name of this command.\n\t */\n\tpublic readonly name: string = undefined!;\n\n\t/**\n\t * The name localizations of this command.\n\t */\n\tpublic readonly name_localizations?: LocalizationMap;\n\n\t/**\n\t * The type of this command.\n\t */\n\tpublic readonly type: ContextMenuCommandType = undefined!;\n\n\t/**\n\t * The contexts for this command.\n\t */\n\tpublic readonly contexts?: InteractionContextType[];\n\n\t/**\n\t * Whether this command is enabled by default when the application is added to a guild.\n\t *\n\t * @deprecated Use {@link ContextMenuCommandBuilder.setDefaultMemberPermissions} or {@link ContextMenuCommandBuilder.setDMPermission} instead.\n\t */\n\tpublic readonly default_permission: boolean | undefined = undefined;\n\n\t/**\n\t * The set of permissions represented as a bit set for the command.\n\t */\n\tpublic readonly default_member_permissions: Permissions | null | undefined = undefined;\n\n\t/**\n\t * Indicates whether the command is available in direct messages with the application.\n\t *\n\t * @remarks\n\t * By default, commands are visible. This property is only for global commands.\n\t * @deprecated\n\t * Use {@link ContextMenuCommandBuilder.contexts} instead.\n\t */\n\tpublic readonly dm_permission: boolean | undefined = undefined;\n\n\t/**\n\t * The integration types for this command.\n\t */\n\tpublic readonly integration_types?: ApplicationIntegrationType[];\n\n\t/**\n\t * Sets the contexts of this command.\n\t *\n\t * @param contexts - The contexts\n\t */\n\tpublic setContexts(...contexts: RestOrArray) {\n\t\tReflect.set(this, 'contexts', contextsPredicate.parse(normalizeArray(contexts)));\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets integration types of this command.\n\t *\n\t * @param integrationTypes - The integration types\n\t */\n\tpublic setIntegrationTypes(...integrationTypes: RestOrArray) {\n\t\tReflect.set(this, 'integration_types', integrationTypesPredicate.parse(normalizeArray(integrationTypes)));\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the name of this command.\n\t *\n\t * @param name - The name to use\n\t */\n\tpublic setName(name: string) {\n\t\t// Assert the name matches the conditions\n\t\tvalidateName(name);\n\n\t\tReflect.set(this, 'name', name);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the type of this command.\n\t *\n\t * @param type - The type to use\n\t */\n\tpublic setType(type: ContextMenuCommandType) {\n\t\t// Assert the type is valid\n\t\tvalidateType(type);\n\n\t\tReflect.set(this, 'type', type);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether the command is enabled by default when the application is added to a guild.\n\t *\n\t * @remarks\n\t * If set to `false`, you will have to later `PUT` the permissions for this command.\n\t * @param value - Whether to enable this command by default\n\t * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions}\n\t * @deprecated Use {@link ContextMenuCommandBuilder.setDefaultMemberPermissions} or {@link ContextMenuCommandBuilder.setDMPermission} instead.\n\t */\n\tpublic setDefaultPermission(value: boolean) {\n\t\t// Assert the value matches the conditions\n\t\tvalidateDefaultPermission(value);\n\n\t\tReflect.set(this, 'default_permission', value);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the default permissions a member should have in order to run this command.\n\t *\n\t * @remarks\n\t * You can set this to `'0'` to disable the command by default.\n\t * @param permissions - The permissions bit field to set\n\t * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions}\n\t */\n\tpublic setDefaultMemberPermissions(permissions: Permissions | bigint | number | null | undefined) {\n\t\t// Assert the value and parse it\n\t\tconst permissionValue = validateDefaultMemberPermissions(permissions);\n\n\t\tReflect.set(this, 'default_member_permissions', permissionValue);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets if the command is available in direct messages with the application.\n\t *\n\t * @remarks\n\t * By default, commands are visible. This method is only for global commands.\n\t * @param enabled - Whether the command should be enabled in direct messages\n\t * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions}\n\t * @deprecated Use {@link ContextMenuCommandBuilder.setContexts} instead.\n\t */\n\tpublic setDMPermission(enabled: boolean | null | undefined) {\n\t\t// Assert the value matches the conditions\n\t\tvalidateDMPermission(enabled);\n\n\t\tReflect.set(this, 'dm_permission', enabled);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets a name localization for this command.\n\t *\n\t * @param locale - The locale to set\n\t * @param localizedName - The localized name for the given `locale`\n\t */\n\tpublic setNameLocalization(locale: LocaleString, localizedName: string | null) {\n\t\tif (!this.name_localizations) {\n\t\t\tReflect.set(this, 'name_localizations', {});\n\t\t}\n\n\t\tconst parsedLocale = validateLocale(locale);\n\n\t\tif (localizedName === null) {\n\t\t\tthis.name_localizations![parsedLocale] = null;\n\t\t\treturn this;\n\t\t}\n\n\t\tvalidateName(localizedName);\n\n\t\tthis.name_localizations![parsedLocale] = localizedName;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the name localizations for this command.\n\t *\n\t * @param localizedNames - The object of localized names to set\n\t */\n\tpublic setNameLocalizations(localizedNames: LocalizationMap | null) {\n\t\tif (localizedNames === null) {\n\t\t\tReflect.set(this, 'name_localizations', null);\n\t\t\treturn this;\n\t\t}\n\n\t\tReflect.set(this, 'name_localizations', {});\n\n\t\tfor (const args of Object.entries(localizedNames))\n\t\t\tthis.setNameLocalization(...(args as [LocaleString, string | null]));\n\t\treturn this;\n\t}\n\n\t/**\n\t * Serializes this builder to API-compatible JSON data.\n\t *\n\t * @remarks\n\t * This method runs validations on the data before serializing it.\n\t * As such, it may throw an error if the data is invalid.\n\t */\n\tpublic toJSON(): RESTPostAPIContextMenuApplicationCommandsJSONBody {\n\t\tvalidateRequiredParameters(this.name, this.type);\n\n\t\tvalidateLocalizationMap(this.name_localizations);\n\n\t\treturn { ...this };\n\t}\n}\n","import type { APIEmbed } from 'discord-api-types/v10';\n\n/**\n * Calculates the length of the embed.\n *\n * @param data - The embed data to check\n */\nexport function embedLength(data: APIEmbed) {\n\treturn (\n\t\t(data.title?.length ?? 0) +\n\t\t(data.description?.length ?? 0) +\n\t\t(data.fields?.reduce((prev, curr) => prev + curr.name.length + curr.value.length, 0) ?? 0) +\n\t\t(data.footer?.text.length ?? 0) +\n\t\t(data.author?.name.length ?? 0)\n\t);\n}\n"],"mappings":"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","names":["Assertions_exports","Assertions_exports","import_shapeshift","import_v10","import_v10","import_v10","import_v10","Assertions_exports","import_shapeshift","import_v10","import_v10","import_v10","import_v10","Assertions_exports","import_shapeshift","import_v10","import_v10","import_v10","Assertions_exports","placeholderValidator","import_shapeshift","import_v10","placeholderValidator","import_v10","import_v10","import_v10","Assertions_exports","import_shapeshift","import_v10","import_v10","import_v10","placeholderValidator","isEqual","Assertions_exports","import_shapeshift","import_v10","import_v10","Assertions_exports","descriptionPredicate","import_shapeshift","import_v10","import_v10","descriptionPredicate","descriptionPredicate","import_v10","import_v10","import_v10","import_v10","descriptionPredicate","import_v10","import_v10","Assertions_exports","validateRequiredParameters","import_shapeshift","validateRequiredParameters","validateRequiredParameters","Assertions_exports","assertReturnOfBuilder","validateRequiredParameters","import_shapeshift","import_v10","descriptionPredicate","validateRequiredParameters","assertReturnOfBuilder","import_ts_mixer","import_v10","validateRequiredParameters","import_v10","validateRequiredParameters","import_v10","import_v10","import_shapeshift","import_v10","import_shapeshift","import_v10","import_ts_mixer","import_shapeshift","booleanPredicate","import_shapeshift","import_v10","import_v10","import_shapeshift","import_v10","import_ts_mixer","numberValidator","import_v10","import_shapeshift","import_v10","import_ts_mixer","minLengthValidator","maxLengthValidator","import_v10","assertReturnOfBuilder","import_v10","import_ts_mixer","assertReturnOfBuilder","validateRequiredParameters","assertReturnOfBuilder","Assertions_exports","contextsPredicate","integrationTypesPredicate","validateDMPermission","validateDefaultMemberPermissions","validateDefaultPermission","validateName","validateRequiredParameters","import_shapeshift","import_v10","namePredicate","booleanPredicate","validateDefaultPermission","validateName","validateRequiredParameters","dmPermissionPredicate","validateDMPermission","memberPermissionPredicate","validateDefaultMemberPermissions","contextsPredicate","integrationTypesPredicate","contextsPredicate","integrationTypesPredicate","validateName","validateDefaultPermission","validateDefaultMemberPermissions","validateDMPermission","validateRequiredParameters"]} \ No newline at end of file diff --git a/node_modules/@discordjs/builders/dist/index.mjs b/node_modules/@discordjs/builders/dist/index.mjs new file mode 100644 index 0000000..9a6808e --- /dev/null +++ b/node_modules/@discordjs/builders/dist/index.mjs @@ -0,0 +1,4756 @@ +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __decorateClass = (decorators, target, key, kind) => { + var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target; + for (var i = decorators.length - 1, decorator; i >= 0; i--) + if (decorator = decorators[i]) + result = (kind ? decorator(target, key, result) : decorator(result)) || result; + if (kind && result) __defProp(target, key, result); + return result; +}; + +// src/messages/embed/Assertions.ts +var Assertions_exports = {}; +__export(Assertions_exports, { + RGBPredicate: () => RGBPredicate, + authorNamePredicate: () => authorNamePredicate, + colorPredicate: () => colorPredicate, + descriptionPredicate: () => descriptionPredicate, + embedAuthorPredicate: () => embedAuthorPredicate, + embedFieldPredicate: () => embedFieldPredicate, + embedFieldsArrayPredicate: () => embedFieldsArrayPredicate, + embedFooterPredicate: () => embedFooterPredicate, + fieldInlinePredicate: () => fieldInlinePredicate, + fieldLengthPredicate: () => fieldLengthPredicate, + fieldNamePredicate: () => fieldNamePredicate, + fieldValuePredicate: () => fieldValuePredicate, + footerTextPredicate: () => footerTextPredicate, + imageURLPredicate: () => imageURLPredicate, + timestampPredicate: () => timestampPredicate, + titlePredicate: () => titlePredicate, + urlPredicate: () => urlPredicate, + validateFieldLength: () => validateFieldLength +}); +import { s } from "@sapphire/shapeshift"; + +// src/util/validation.ts +var validate = true; +function enableValidators() { + return validate = true; +} +__name(enableValidators, "enableValidators"); +function disableValidators() { + return validate = false; +} +__name(disableValidators, "disableValidators"); +function isValidationEnabled() { + return validate; +} +__name(isValidationEnabled, "isValidationEnabled"); + +// src/messages/embed/Assertions.ts +var fieldNamePredicate = s.string().lengthLessThanOrEqual(256).setValidationEnabled(isValidationEnabled); +var fieldValuePredicate = s.string().lengthLessThanOrEqual(1024).setValidationEnabled(isValidationEnabled); +var fieldInlinePredicate = s.boolean().optional(); +var embedFieldPredicate = s.object({ + name: fieldNamePredicate, + value: fieldValuePredicate, + inline: fieldInlinePredicate +}).setValidationEnabled(isValidationEnabled); +var embedFieldsArrayPredicate = embedFieldPredicate.array().setValidationEnabled(isValidationEnabled); +var fieldLengthPredicate = s.number().lessThanOrEqual(25).setValidationEnabled(isValidationEnabled); +function validateFieldLength(amountAdding, fields) { + fieldLengthPredicate.parse((fields?.length ?? 0) + amountAdding); +} +__name(validateFieldLength, "validateFieldLength"); +var authorNamePredicate = fieldNamePredicate.lengthGreaterThanOrEqual(1).nullable().setValidationEnabled(isValidationEnabled); +var imageURLPredicate = s.string().url({ + allowedProtocols: ["http:", "https:", "attachment:"] +}).nullish().setValidationEnabled(isValidationEnabled); +var urlPredicate = s.string().url({ + allowedProtocols: ["http:", "https:"] +}).nullish().setValidationEnabled(isValidationEnabled); +var embedAuthorPredicate = s.object({ + name: authorNamePredicate, + iconURL: imageURLPredicate, + url: urlPredicate +}).setValidationEnabled(isValidationEnabled); +var RGBPredicate = s.number().int().greaterThanOrEqual(0).lessThanOrEqual(255).setValidationEnabled(isValidationEnabled); +var colorPredicate = s.number().int().greaterThanOrEqual(0).lessThanOrEqual(16777215).or(s.tuple([RGBPredicate, RGBPredicate, RGBPredicate])).nullable().setValidationEnabled(isValidationEnabled); +var descriptionPredicate = s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(4096).nullable().setValidationEnabled(isValidationEnabled); +var footerTextPredicate = s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(2048).nullable().setValidationEnabled(isValidationEnabled); +var embedFooterPredicate = s.object({ + text: footerTextPredicate, + iconURL: imageURLPredicate +}).setValidationEnabled(isValidationEnabled); +var timestampPredicate = s.union([s.number(), s.date()]).nullable().setValidationEnabled(isValidationEnabled); +var titlePredicate = fieldNamePredicate.lengthGreaterThanOrEqual(1).nullable().setValidationEnabled(isValidationEnabled); + +// src/util/normalizeArray.ts +function normalizeArray(arr) { + if (Array.isArray(arr[0])) return [...arr[0]]; + return arr; +} +__name(normalizeArray, "normalizeArray"); + +// src/messages/embed/Embed.ts +var EmbedBuilder = class { + static { + __name(this, "EmbedBuilder"); + } + /** + * The API data associated with this embed. + */ + data; + /** + * Creates a new embed from API data. + * + * @param data - The API data to create this embed with + */ + constructor(data = {}) { + this.data = { ...data }; + if (data.timestamp) this.data.timestamp = new Date(data.timestamp).toISOString(); + } + /** + * Appends fields to the embed. + * + * @remarks + * This method accepts either an array of fields or a variable number of field parameters. + * The maximum amount of fields that can be added is 25. + * @example + * Using an array: + * ```ts + * const fields: APIEmbedField[] = ...; + * const embed = new EmbedBuilder() + * .addFields(fields); + * ``` + * @example + * Using rest parameters (variadic): + * ```ts + * const embed = new EmbedBuilder() + * .addFields( + * { name: 'Field 1', value: 'Value 1' }, + * { name: 'Field 2', value: 'Value 2' }, + * ); + * ``` + * @param fields - The fields to add + */ + addFields(...fields) { + const normalizedFields = normalizeArray(fields); + validateFieldLength(normalizedFields.length, this.data.fields); + embedFieldsArrayPredicate.parse(normalizedFields); + if (this.data.fields) this.data.fields.push(...normalizedFields); + else this.data.fields = normalizedFields; + return this; + } + /** + * Removes, replaces, or inserts fields for this embed. + * + * @remarks + * This method behaves similarly + * to {@link https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/splice | Array.prototype.splice()}. + * The maximum amount of fields that can be added is 25. + * + * It's useful for modifying and adjusting order of the already-existing fields of an embed. + * @example + * Remove the first field: + * ```ts + * embed.spliceFields(0, 1); + * ``` + * @example + * Remove the first n fields: + * ```ts + * const n = 4; + * embed.spliceFields(0, n); + * ``` + * @example + * Remove the last field: + * ```ts + * embed.spliceFields(-1, 1); + * ``` + * @param index - The index to start at + * @param deleteCount - The number of fields to remove + * @param fields - The replacing field objects + */ + spliceFields(index, deleteCount, ...fields) { + validateFieldLength(fields.length - deleteCount, this.data.fields); + embedFieldsArrayPredicate.parse(fields); + if (this.data.fields) this.data.fields.splice(index, deleteCount, ...fields); + else this.data.fields = fields; + return this; + } + /** + * Sets the fields for this embed. + * + * @remarks + * This method is an alias for {@link EmbedBuilder.spliceFields}. More specifically, + * it splices the entire array of fields, replacing them with the provided fields. + * + * You can set a maximum of 25 fields. + * @param fields - The fields to set + */ + setFields(...fields) { + this.spliceFields(0, this.data.fields?.length ?? 0, ...normalizeArray(fields)); + return this; + } + /** + * Sets the author of this embed. + * + * @param options - The options to use + */ + setAuthor(options) { + if (options === null) { + this.data.author = void 0; + return this; + } + embedAuthorPredicate.parse(options); + this.data.author = { name: options.name, url: options.url, icon_url: options.iconURL }; + return this; + } + /** + * Sets the color of this embed. + * + * @param color - The color to use + */ + setColor(color) { + colorPredicate.parse(color); + if (Array.isArray(color)) { + const [red, green, blue] = color; + this.data.color = (red << 16) + (green << 8) + blue; + return this; + } + this.data.color = color ?? void 0; + return this; + } + /** + * Sets the description of this embed. + * + * @param description - The description to use + */ + setDescription(description) { + descriptionPredicate.parse(description); + this.data.description = description ?? void 0; + return this; + } + /** + * Sets the footer of this embed. + * + * @param options - The footer to use + */ + setFooter(options) { + if (options === null) { + this.data.footer = void 0; + return this; + } + embedFooterPredicate.parse(options); + this.data.footer = { text: options.text, icon_url: options.iconURL }; + return this; + } + /** + * Sets the image of this embed. + * + * @param url - The image URL to use + */ + setImage(url) { + imageURLPredicate.parse(url); + this.data.image = url ? { url } : void 0; + return this; + } + /** + * Sets the thumbnail of this embed. + * + * @param url - The thumbnail URL to use + */ + setThumbnail(url) { + imageURLPredicate.parse(url); + this.data.thumbnail = url ? { url } : void 0; + return this; + } + /** + * Sets the timestamp of this embed. + * + * @param timestamp - The timestamp or date to use + */ + setTimestamp(timestamp = Date.now()) { + timestampPredicate.parse(timestamp); + this.data.timestamp = timestamp ? new Date(timestamp).toISOString() : void 0; + return this; + } + /** + * Sets the title for this embed. + * + * @param title - The title to use + */ + setTitle(title) { + titlePredicate.parse(title); + this.data.title = title ?? void 0; + return this; + } + /** + * Sets the URL of this embed. + * + * @param url - The URL to use + */ + setURL(url) { + urlPredicate.parse(url); + this.data.url = url ?? void 0; + return this; + } + /** + * Serializes this builder to API-compatible JSON data. + * + * @remarks + * This method runs validations on the data before serializing it. + * As such, it may throw an error if the data is invalid. + */ + toJSON() { + return { ...this.data }; + } +}; + +// src/index.ts +export * from "@discordjs/formatters"; + +// src/components/Assertions.ts +var Assertions_exports2 = {}; +__export(Assertions_exports2, { + buttonLabelValidator: () => buttonLabelValidator, + buttonStyleValidator: () => buttonStyleValidator, + channelTypesValidator: () => channelTypesValidator, + customIdValidator: () => customIdValidator, + defaultValidator: () => defaultValidator, + disabledValidator: () => disabledValidator, + emojiValidator: () => emojiValidator, + idValidator: () => idValidator, + jsonOptionValidator: () => jsonOptionValidator, + labelValueDescriptionValidator: () => labelValueDescriptionValidator, + minMaxValidator: () => minMaxValidator, + optionValidator: () => optionValidator, + optionsLengthValidator: () => optionsLengthValidator, + optionsValidator: () => optionsValidator, + placeholderValidator: () => placeholderValidator, + urlValidator: () => urlValidator, + validateRequiredButtonParameters: () => validateRequiredButtonParameters, + validateRequiredSelectMenuOptionParameters: () => validateRequiredSelectMenuOptionParameters, + validateRequiredSelectMenuParameters: () => validateRequiredSelectMenuParameters +}); +import { s as s2 } from "@sapphire/shapeshift"; +import { ButtonStyle, ChannelType } from "discord-api-types/v10"; + +// src/components/selectMenu/StringSelectMenuOption.ts +var StringSelectMenuOptionBuilder = class { + /** + * Creates a new string select menu option from API data. + * + * @param data - The API data to create this string select menu option with + * @example + * Creating a string select menu option from an API data object: + * ```ts + * const selectMenuOption = new SelectMenuOptionBuilder({ + * label: 'catchy label', + * value: '1', + * }); + * ``` + * @example + * Creating a string select menu option using setters and API data: + * ```ts + * const selectMenuOption = new SelectMenuOptionBuilder({ + * default: true, + * value: '1', + * }) + * .setLabel('woah'); + * ``` + */ + constructor(data = {}) { + this.data = data; + } + static { + __name(this, "StringSelectMenuOptionBuilder"); + } + /** + * Sets the label for this option. + * + * @param label - The label to use + */ + setLabel(label) { + this.data.label = labelValueDescriptionValidator.parse(label); + return this; + } + /** + * Sets the value for this option. + * + * @param value - The value to use + */ + setValue(value) { + this.data.value = labelValueDescriptionValidator.parse(value); + return this; + } + /** + * Sets the description for this option. + * + * @param description - The description to use + */ + setDescription(description) { + this.data.description = labelValueDescriptionValidator.parse(description); + return this; + } + /** + * Sets whether this option is selected by default. + * + * @param isDefault - Whether this option is selected by default + */ + setDefault(isDefault = true) { + this.data.default = defaultValidator.parse(isDefault); + return this; + } + /** + * Sets the emoji to display for this option. + * + * @param emoji - The emoji to use + */ + setEmoji(emoji) { + this.data.emoji = emojiValidator.parse(emoji); + return this; + } + /** + * {@inheritDoc BaseSelectMenuBuilder.toJSON} + */ + toJSON() { + validateRequiredSelectMenuOptionParameters(this.data.label, this.data.value); + return { + ...this.data + }; + } +}; + +// src/components/Assertions.ts +var idValidator = s2.number().safeInt().greaterThanOrEqual(1).lessThan(4294967296).setValidationEnabled(isValidationEnabled); +var customIdValidator = s2.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(100).setValidationEnabled(isValidationEnabled); +var emojiValidator = s2.object({ + id: s2.string(), + name: s2.string(), + animated: s2.boolean() +}).partial().strict().setValidationEnabled(isValidationEnabled); +var disabledValidator = s2.boolean(); +var buttonLabelValidator = s2.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(80).setValidationEnabled(isValidationEnabled); +var buttonStyleValidator = s2.nativeEnum(ButtonStyle); +var placeholderValidator = s2.string().lengthLessThanOrEqual(150).setValidationEnabled(isValidationEnabled); +var minMaxValidator = s2.number().int().greaterThanOrEqual(0).lessThanOrEqual(25).setValidationEnabled(isValidationEnabled); +var labelValueDescriptionValidator = s2.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(100).setValidationEnabled(isValidationEnabled); +var jsonOptionValidator = s2.object({ + label: labelValueDescriptionValidator, + value: labelValueDescriptionValidator, + description: labelValueDescriptionValidator.optional(), + emoji: emojiValidator.optional(), + default: s2.boolean().optional() +}).setValidationEnabled(isValidationEnabled); +var optionValidator = s2.instance(StringSelectMenuOptionBuilder).setValidationEnabled(isValidationEnabled); +var optionsValidator = optionValidator.array().lengthGreaterThanOrEqual(0).setValidationEnabled(isValidationEnabled); +var optionsLengthValidator = s2.number().int().greaterThanOrEqual(0).lessThanOrEqual(25).setValidationEnabled(isValidationEnabled); +function validateRequiredSelectMenuParameters(options, customId) { + customIdValidator.parse(customId); + optionsValidator.parse(options); +} +__name(validateRequiredSelectMenuParameters, "validateRequiredSelectMenuParameters"); +var defaultValidator = s2.boolean(); +function validateRequiredSelectMenuOptionParameters(label, value) { + labelValueDescriptionValidator.parse(label); + labelValueDescriptionValidator.parse(value); +} +__name(validateRequiredSelectMenuOptionParameters, "validateRequiredSelectMenuOptionParameters"); +var channelTypesValidator = s2.nativeEnum(ChannelType).array().setValidationEnabled(isValidationEnabled); +var urlValidator = s2.string().url({ + allowedProtocols: ["http:", "https:", "discord:"] +}).setValidationEnabled(isValidationEnabled); +function validateRequiredButtonParameters(style, label, emoji, customId, skuId, url) { + if (style === ButtonStyle.Premium) { + if (!skuId) { + throw new RangeError("Premium buttons must have an SKU id."); + } + if (customId || label || url || emoji) { + throw new RangeError("Premium buttons cannot have a custom id, label, URL, or emoji."); + } + } else { + if (skuId) { + throw new RangeError("Non-premium buttons must not have an SKU id."); + } + if (url && customId) { + throw new RangeError("URL and custom id are mutually exclusive."); + } + if (!label && !emoji) { + throw new RangeError("Non-premium buttons must have a label and/or an emoji."); + } + if (style === ButtonStyle.Link) { + if (!url) { + throw new RangeError("Link buttons must have a URL."); + } + } else if (url) { + throw new RangeError("Non-premium and non-link buttons cannot have a URL."); + } + } +} +__name(validateRequiredButtonParameters, "validateRequiredButtonParameters"); + +// src/components/ActionRow.ts +import { + ComponentType as ComponentType26 +} from "discord-api-types/v10"; + +// src/components/Component.ts +var ComponentBuilder = class { + static { + __name(this, "ComponentBuilder"); + } + /** + * The API data associated with this component. + */ + data; + /** + * Constructs a new kind of component. + * + * @param data - The data to construct a component out of + */ + constructor(data) { + this.data = data; + } + /** + * Sets the id (not the custom id) for this component. + * + * @param id - The id for this component + */ + setId(id) { + this.data.id = idValidator.parse(id); + return this; + } + /** + * Clears the id of this component, defaulting to a default incremented id. + */ + clearId() { + this.data.id = void 0; + return this; + } +}; + +// src/components/Components.ts +import { ComponentType as ComponentType25 } from "discord-api-types/v10"; + +// src/components/button/Button.ts +import { + ComponentType +} from "discord-api-types/v10"; +var ButtonBuilder = class extends ComponentBuilder { + static { + __name(this, "ButtonBuilder"); + } + /** + * Creates a new button from API data. + * + * @param data - The API data to create this button with + * @example + * Creating a button from an API data object: + * ```ts + * const button = new ButtonBuilder({ + * custom_id: 'a cool button', + * style: ButtonStyle.Primary, + * label: 'Click Me', + * emoji: { + * name: 'smile', + * id: '123456789012345678', + * }, + * }); + * ``` + * @example + * Creating a button using setters and API data: + * ```ts + * const button = new ButtonBuilder({ + * style: ButtonStyle.Secondary, + * label: 'Click Me', + * }) + * .setEmoji({ name: '🙂' }) + * .setCustomId('another cool button'); + * ``` + */ + constructor(data) { + super({ type: ComponentType.Button, ...data }); + } + /** + * Sets the style of this button. + * + * @param style - The style to use + */ + setStyle(style) { + this.data.style = buttonStyleValidator.parse(style); + return this; + } + /** + * Sets the URL for this button. + * + * @remarks + * This method is only available to buttons using the `Link` button style. + * Only three types of URL schemes are currently supported: `https://`, `http://`, and `discord://`. + * @param url - The URL to use + */ + setURL(url) { + this.data.url = urlValidator.parse(url); + return this; + } + /** + * Sets the custom id for this button. + * + * @remarks + * This method is only applicable to buttons that are not using the `Link` button style. + * @param customId - The custom id to use + */ + setCustomId(customId) { + this.data.custom_id = customIdValidator.parse(customId); + return this; + } + /** + * Sets the SKU id that represents a purchasable SKU for this button. + * + * @remarks Only available when using premium-style buttons. + * @param skuId - The SKU id to use + */ + setSKUId(skuId) { + this.data.sku_id = skuId; + return this; + } + /** + * Sets the emoji to display on this button. + * + * @param emoji - The emoji to use + */ + setEmoji(emoji) { + this.data.emoji = emojiValidator.parse(emoji); + return this; + } + /** + * Sets whether this button is disabled. + * + * @param disabled - Whether to disable this button + */ + setDisabled(disabled = true) { + this.data.disabled = disabledValidator.parse(disabled); + return this; + } + /** + * Sets the label for this button. + * + * @param label - The label to use + */ + setLabel(label) { + this.data.label = buttonLabelValidator.parse(label); + return this; + } + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON() { + validateRequiredButtonParameters( + this.data.style, + this.data.label, + this.data.emoji, + this.data.custom_id, + this.data.sku_id, + this.data.url + ); + return { + ...this.data + }; + } +}; + +// src/components/checkbox/Checkbox.ts +import { ComponentType as ComponentType3 } from "discord-api-types/v10"; + +// src/components/checkbox/Assertions.ts +var Assertions_exports3 = {}; +__export(Assertions_exports3, { + checkboxGroupOptionPredicate: () => checkboxGroupOptionPredicate, + checkboxGroupPredicate: () => checkboxGroupPredicate, + checkboxPredicate: () => checkboxPredicate, + radioGroupOptionPredicate: () => radioGroupOptionPredicate, + radioGroupPredicate: () => radioGroupPredicate +}); +import { Result, s as s3 } from "@sapphire/shapeshift"; +import { ComponentType as ComponentType2 } from "discord-api-types/v10"; +var checkboxPredicate = s3.object({ + type: s3.literal(ComponentType2.Checkbox), + custom_id: customIdValidator, + id: idValidator.optional(), + default: s3.boolean().optional() +}).setValidationEnabled(isValidationEnabled); +var checkboxGroupOptionPredicate = s3.object({ + label: s3.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(100), + value: s3.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(100), + description: s3.string().lengthLessThanOrEqual(100).optional(), + default: s3.boolean().optional() +}).setValidationEnabled(isValidationEnabled); +var checkboxGroupPredicate = s3.object({ + type: s3.literal(ComponentType2.CheckboxGroup), + custom_id: customIdValidator, + id: idValidator.optional(), + options: s3.array(checkboxGroupOptionPredicate).lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(10), + min_values: s3.number().int().greaterThanOrEqual(0).lessThanOrEqual(10).optional(), + max_values: s3.number().int().greaterThanOrEqual(1).lessThanOrEqual(10).optional(), + required: s3.boolean().optional() +}).reshape((data) => { + if (data.min_values !== void 0 && data.max_values !== void 0 && data.min_values > data.max_values) { + return Result.err(new RangeError("min_values cannot be greater than max_values")); + } + if (data.max_values !== void 0 && data.max_values > data.options.length) { + return Result.err(new RangeError("max_values cannot be greater than the number of options")); + } + if (data.min_values !== void 0 && data.min_values > data.options.length) { + return Result.err(new RangeError("min_values cannot be greater than the number of options")); + } + if (data.required === true && data.min_values === 0) { + return Result.err(new RangeError("If required is true, min_values must be at least 1")); + } + const defaultCount = data.options.filter((option) => option.default === true).length; + if (data.max_values !== void 0 && defaultCount > data.max_values) { + return Result.err(new RangeError("The number of default options cannot be greater than max_values")); + } + const values = data.options.map((option) => option.value); + const uniqueValues = new Set(values); + if (uniqueValues.size !== values.length) { + return Result.err(new RangeError("Each option in a checkbox group must have a unique value")); + } + return Result.ok(data); +}).setValidationEnabled(isValidationEnabled); +var radioGroupOptionPredicate = checkboxGroupOptionPredicate; +var radioGroupPredicate = s3.object({ + type: s3.literal(ComponentType2.RadioGroup), + custom_id: customIdValidator, + id: idValidator.optional(), + options: s3.array(radioGroupOptionPredicate).lengthGreaterThanOrEqual(2).lengthLessThanOrEqual(10), + required: s3.boolean().optional() +}).reshape((data) => { + const defaultCount = data.options.filter((option) => option.default === true).length; + if (defaultCount > 1) { + return Result.err(new RangeError("There can be at most one default option in a radio group")); + } + const values = data.options.map((option) => option.value); + const uniqueValues = new Set(values); + if (uniqueValues.size !== values.length) { + return Result.err(new RangeError("Each option in a radio group must have a unique value")); + } + return Result.ok(data); +}).setValidationEnabled(isValidationEnabled); + +// src/components/checkbox/Checkbox.ts +var CheckboxBuilder = class extends ComponentBuilder { + static { + __name(this, "CheckboxBuilder"); + } + /** + * Creates a new checkbox from API data. + * + * @param data - The API data to create this checkbox with + * @example + * Creating a checkbox from an API data object: + * ```ts + * const checkbox = new CheckboxBuilder({ + * custom_id: 'accept_terms', + * default: false, + * }); + * ``` + * @example + * Creating a checkbox using setters and API data: + * ```ts + * const checkbox = new CheckboxBuilder() + * .setCustomId('subscribe_newsletter') + * .setDefault(true); + * ``` + */ + constructor(data) { + super({ type: ComponentType3.Checkbox, ...data }); + } + /** + * Sets the custom id of this checkbox. + * + * @param customId - The custom id to use + */ + setCustomId(customId) { + this.data.custom_id = customId; + return this; + } + /** + * Sets whether this checkbox is checked by default. + * + * @param isDefault - Whether the checkbox should be checked by default + */ + setDefault(isDefault) { + this.data.default = isDefault; + return this; + } + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON() { + checkboxPredicate.parse(this.data); + return { + ...this.data + }; + } +}; + +// src/components/checkbox/CheckboxGroup.ts +import { ComponentType as ComponentType4 } from "discord-api-types/v10"; + +// src/components/checkbox/CheckboxGroupOption.ts +var CheckboxGroupOptionBuilder = class { + /** + * Creates a new checkbox group option from API data. + * + * @param data - The API data to create this checkbox group option with + * @example + * Creating a checkbox group option from an API data object: + * ```ts + * const option = new CheckboxGroupOptionBuilder({ + * label: 'Option 1', + * value: 'option_1', + * }); + * ``` + * @example + * Creating a checkbox group option using setters and API data: + * ```ts + * const option = new CheckboxGroupOptionBuilder() + * .setLabel('Option 2') + * .setValue('option_2'); + * ``` + */ + constructor(data = {}) { + this.data = data; + } + static { + __name(this, "CheckboxGroupOptionBuilder"); + } + /** + * Sets the label for this option. + * + * @param label - The label to use + */ + setLabel(label) { + this.data.label = label; + return this; + } + /** + * Sets the value for this option. + * + * @param value - The value to use + */ + setValue(value) { + this.data.value = value; + return this; + } + /** + * Sets the description for this option. + * + * @param description - The description to use + */ + setDescription(description) { + this.data.description = description; + return this; + } + /** + * Sets whether this option is selected by default. + * + * @param isDefault - Whether the option should be selected by default + */ + setDefault(isDefault) { + this.data.default = isDefault; + return this; + } + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON() { + checkboxGroupOptionPredicate.parse(this.data); + return { + ...this.data + }; + } +}; + +// src/components/checkbox/CheckboxGroup.ts +var CheckboxGroupBuilder = class extends ComponentBuilder { + static { + __name(this, "CheckboxGroupBuilder"); + } + /** + * The options within this checkbox group. + */ + options; + /** + * Creates a new checkbox group from API data. + * + * @param data - The API data to create this checkbox group with + * @example + * Creating a checkbox group from an API data object: + * ```ts + * const checkboxGroup = new CheckboxGroupBuilder({ + * custom_id: 'select_options', + * options: [ + * { label: 'Option 1', value: 'option_1' }, + * { label: 'Option 2', value: 'option_2' }, + * ], + * }); + * ``` + * @example + * Creating a checkbox group using setters and API data: + * ```ts + * const checkboxGroup = new CheckboxGroupBuilder() + * .setCustomId('choose_items') + * .setOptions([ + * { label: 'Item A', value: 'item_a' }, + * { label: 'Item B', value: 'item_b' }, + * ]) + * .setMinValues(1) + * .setMaxValues(2); + * ``` + */ + constructor(data) { + const { options, ...initData } = data ?? {}; + super({ ...initData, type: ComponentType4.CheckboxGroup }); + this.options = options?.map((option) => new CheckboxGroupOptionBuilder(option)) ?? []; + } + /** + * Sets the custom id of this checkbox group. + * + * @param customId - The custom id to use + */ + setCustomId(customId) { + this.data.custom_id = customId; + return this; + } + /** + * Adds options to this checkbox group. + * + * @param options - The options to add + */ + addOptions(...options) { + const normalizedOptions = normalizeArray(options); + this.options.push( + ...normalizedOptions.map((normalizedOption) => { + const json = "toJSON" in normalizedOption ? normalizedOption.toJSON() : normalizedOption; + const option = new CheckboxGroupOptionBuilder(json); + checkboxGroupOptionPredicate.parse(option.toJSON()); + return option; + }) + ); + return this; + } + /** + * Sets the options for this checkbox group. + * + * @param options - The options to use + */ + setOptions(...options) { + return this.spliceOptions(0, this.options.length, ...options); + } + /** + * Removes, replaces, or inserts options for this checkbox group. + * + * @remarks + * This method behaves similarly + * to {@link https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/splice | Array.prototype.splice()}. + * It's useful for modifying and adjusting the order of existing options. + * @param index - The index to start at + * @param deleteCount - The number of options to remove + * @param options - The replacing option objects or builders + */ + spliceOptions(index, deleteCount, ...options) { + const normalizedOptions = normalizeArray(options); + const clone = [...this.options]; + clone.splice( + index, + deleteCount, + ...normalizedOptions.map((normalizedOption) => { + const json = "toJSON" in normalizedOption ? normalizedOption.toJSON() : normalizedOption; + const option = new CheckboxGroupOptionBuilder(json); + checkboxGroupOptionPredicate.parse(option.toJSON()); + return option; + }) + ); + this.options.splice(0, this.options.length, ...clone); + return this; + } + /** + * Sets the minimum number of options that must be selected. + * + * @param minValues - The minimum number of options that must be selected + */ + setMinValues(minValues) { + this.data.min_values = minValues; + return this; + } + /** + * Sets the maximum number of options that can be selected. + * + * @param maxValues - The maximum number of options that can be selected + */ + setMaxValues(maxValues) { + this.data.max_values = maxValues; + return this; + } + /** + * Sets whether selecting options is required. + * + * @param required - Whether selecting options is required + */ + setRequired(required) { + this.data.required = required; + return this; + } + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON() { + const data = { + ...this.data, + options: this.options.map((option) => option.toJSON()) + }; + checkboxGroupPredicate.parse(data); + return data; + } +}; + +// src/components/checkbox/RadioGroup.ts +import { ComponentType as ComponentType5 } from "discord-api-types/v10"; + +// src/components/checkbox/RadioGroupOption.ts +var RadioGroupOptionBuilder = class { + /** + * Creates a new radio group option from API data. + * + * @param data - The API data to create this radio group option with + * @example + * Creating a radio group option from an API data object: + * ```ts + * const option = new RadioGroupOptionBuilder({ + * label: 'Option 1', + * value: 'option_1', + * }); + * ``` + * @example + * Creating a radio group option using setters and API data: + * ```ts + * const option = new RadioGroupOptionBuilder() + * .setLabel('Option 2') + * .setValue('option_2'); + * ``` + */ + constructor(data = {}) { + this.data = data; + } + static { + __name(this, "RadioGroupOptionBuilder"); + } + /** + * Sets the label for this option. + * + * @param label - The label to use + */ + setLabel(label) { + this.data.label = label; + return this; + } + /** + * Sets the value for this option. + * + * @param value - The value to use + */ + setValue(value) { + this.data.value = value; + return this; + } + /** + * Sets the description for this option. + * + * @param description - The description to use + */ + setDescription(description) { + this.data.description = description; + return this; + } + /** + * Sets whether this option is selected by default. + * + * @param isDefault - Whether the option should be selected by default + */ + setDefault(isDefault) { + this.data.default = isDefault; + return this; + } + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON() { + radioGroupOptionPredicate.parse(this.data); + return { + ...this.data + }; + } +}; + +// src/components/checkbox/RadioGroup.ts +var RadioGroupBuilder = class extends ComponentBuilder { + static { + __name(this, "RadioGroupBuilder"); + } + /** + * The options within this radio group. + */ + options; + /** + * Creates a new radio group from API data. + * + * @param data - The API data to create this radio group with + * @example + * Creating a radio group from an API data object: + * ```ts + * const radioGroup = new RadioGroupBuilder({ + * custom_id: 'select_options', + * options: [ + * { label: 'Option 1', value: 'option_1' }, + * { label: 'Option 2', value: 'option_2' }, + * ], + * }); + * ``` + * @example + * Creating a radio group using setters and API data: + * ```ts + * const radioGroup = new RadioGroupBuilder() + * .setCustomId('choose_items') + * .setOptions([ + * { label: 'Item A', value: 'item_a' }, + * { label: 'Item B', value: 'item_b' }, + * ]) + * ``` + */ + constructor(data) { + const { options, ...initData } = data ?? {}; + super({ ...initData, type: ComponentType5.RadioGroup }); + this.options = options?.map((option) => new RadioGroupOptionBuilder(option)) ?? []; + } + /** + * Sets the custom id of this radio group. + * + * @param customId - The custom id to use + */ + setCustomId(customId) { + this.data.custom_id = customId; + return this; + } + /** + * Adds options to this radio group. + * + * @param options - The options to add + */ + addOptions(...options) { + const normalizedOptions = normalizeArray(options); + this.options.push( + ...normalizedOptions.map((normalizedOption) => { + const json = "toJSON" in normalizedOption ? normalizedOption.toJSON() : normalizedOption; + const option = new RadioGroupOptionBuilder(json); + radioGroupOptionPredicate.parse(option.toJSON()); + return option; + }) + ); + return this; + } + /** + * Sets the options for this radio group. + * + * @param options - The options to use + */ + setOptions(...options) { + return this.spliceOptions(0, this.options.length, ...options); + } + /** + * Removes, replaces, or inserts options for this radio group. + * + * @remarks + * This method behaves similarly + * to {@link https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/splice | Array.prototype.splice()}. + * It's useful for modifying and adjusting the order of existing options. + * @param index - The index to start at + * @param deleteCount - The number of options to remove + * @param options - The replacing option objects or builders + */ + spliceOptions(index, deleteCount, ...options) { + const normalizedOptions = normalizeArray(options); + const clone = [...this.options]; + clone.splice( + index, + deleteCount, + ...normalizedOptions.map((normalizedOption) => { + const json = "toJSON" in normalizedOption ? normalizedOption.toJSON() : normalizedOption; + const option = new RadioGroupOptionBuilder(json); + radioGroupOptionPredicate.parse(option.toJSON()); + return option; + }) + ); + this.options.splice(0, this.options.length, ...clone); + return this; + } + /** + * Sets whether selecting options is required. + * + * @param required - Whether selecting options is required + */ + setRequired(required) { + this.data.required = required; + return this; + } + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON() { + const data = { + ...this.data, + options: this.options.map((option) => option.toJSON()) + }; + radioGroupPredicate.parse(data); + return data; + } +}; + +// src/components/fileUpload/FileUpload.ts +import { ComponentType as ComponentType7 } from "discord-api-types/v10"; + +// src/components/fileUpload/Assertions.ts +var Assertions_exports4 = {}; +__export(Assertions_exports4, { + fileUploadPredicate: () => fileUploadPredicate +}); +import { s as s4 } from "@sapphire/shapeshift"; +import { ComponentType as ComponentType6 } from "discord-api-types/v10"; +var fileUploadPredicate = s4.object({ + type: s4.literal(ComponentType6.FileUpload), + id: idValidator.optional(), + custom_id: customIdValidator, + min_values: s4.number().greaterThanOrEqual(0).lessThanOrEqual(10).optional(), + max_values: s4.number().greaterThanOrEqual(1).lessThanOrEqual(10).optional(), + required: s4.boolean().optional() +}); + +// src/components/fileUpload/FileUpload.ts +var FileUploadBuilder = class extends ComponentBuilder { + static { + __name(this, "FileUploadBuilder"); + } + /** + * Creates a new file upload. + * + * @param data - The API data to create this file upload with + * @example + * Creating a file upload from an API data object: + * ```ts + * const fileUpload = new FileUploadBuilder({ + * custom_id: "file_upload", + * min_values: 2, + * max_values: 5, + * }); + * ``` + * @example + * Creating a file upload using setters and API data: + * ```ts + * const fileUpload = new FileUploadBuilder({ + * custom_id: "file_upload", + * min_values: 2, + * max_values: 5, + * }).setRequired(); + * ``` + */ + constructor(data = {}) { + super({ type: ComponentType7.FileUpload, ...data }); + } + /** + * Sets the custom id for this file upload. + * + * @param customId - The custom id to use + */ + setCustomId(customId) { + this.data.custom_id = customId; + return this; + } + /** + * Sets the minimum number of file uploads required. + * + * @param minValues - The minimum values that must be uploaded + */ + setMinValues(minValues) { + this.data.min_values = minValues; + return this; + } + /** + * Clears the minimum values. + */ + clearMinValues() { + this.data.min_values = void 0; + return this; + } + /** + * Sets the maximum number of file uploads required. + * + * @param maxValues - The maximum values that can be uploaded + */ + setMaxValues(maxValues) { + this.data.max_values = maxValues; + return this; + } + /** + * Clears the maximum values. + */ + clearMaxValues() { + this.data.max_values = void 0; + return this; + } + /** + * Sets whether this file upload is required. + * + * @param required - Whether this file upload is required + */ + setRequired(required = true) { + this.data.required = required; + return this; + } + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON() { + fileUploadPredicate.parse(this.data); + return this.data; + } +}; + +// src/components/label/Label.ts +import { ComponentType as ComponentType17 } from "discord-api-types/v10"; + +// src/components/selectMenu/ChannelSelectMenu.ts +import { + ComponentType as ComponentType9, + SelectMenuDefaultValueType +} from "discord-api-types/v10"; + +// src/components/textInput/Assertions.ts +var Assertions_exports5 = {}; +__export(Assertions_exports5, { + labelValidator: () => labelValidator, + maxLengthValidator: () => maxLengthValidator, + minLengthValidator: () => minLengthValidator, + placeholderValidator: () => placeholderValidator2, + requiredValidator: () => requiredValidator, + textInputPredicate: () => textInputPredicate, + textInputStyleValidator: () => textInputStyleValidator, + validateRequiredParameters: () => validateRequiredParameters, + valueValidator: () => valueValidator +}); +import { s as s5 } from "@sapphire/shapeshift"; +import { ComponentType as ComponentType8, TextInputStyle } from "discord-api-types/v10"; +var textInputStyleValidator = s5.nativeEnum(TextInputStyle).setValidationEnabled(isValidationEnabled); +var minLengthValidator = s5.number().int().greaterThanOrEqual(0).lessThanOrEqual(4e3).setValidationEnabled(isValidationEnabled); +var maxLengthValidator = s5.number().int().greaterThanOrEqual(1).lessThanOrEqual(4e3).setValidationEnabled(isValidationEnabled); +var requiredValidator = s5.boolean().setValidationEnabled(isValidationEnabled); +var valueValidator = s5.string().lengthLessThanOrEqual(4e3).setValidationEnabled(isValidationEnabled); +var placeholderValidator2 = s5.string().lengthLessThanOrEqual(100).setValidationEnabled(isValidationEnabled); +var labelValidator = s5.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(45).setValidationEnabled(isValidationEnabled); +var textInputPredicate = s5.object({ + type: s5.literal(ComponentType8.TextInput), + custom_id: customIdValidator, + style: textInputStyleValidator, + id: idValidator.optional(), + min_length: minLengthValidator.optional(), + max_length: maxLengthValidator.optional(), + placeholder: placeholderValidator2.optional(), + value: valueValidator.optional(), + required: requiredValidator.optional() +}).setValidationEnabled(isValidationEnabled); +function validateRequiredParameters(customId, style) { + customIdValidator.parse(customId); + textInputStyleValidator.parse(style); +} +__name(validateRequiredParameters, "validateRequiredParameters"); + +// src/components/selectMenu/BaseSelectMenu.ts +var BaseSelectMenuBuilder = class extends ComponentBuilder { + static { + __name(this, "BaseSelectMenuBuilder"); + } + /** + * Sets the placeholder for this select menu. + * + * @param placeholder - The placeholder to use + */ + setPlaceholder(placeholder) { + this.data.placeholder = placeholderValidator.parse(placeholder); + return this; + } + /** + * Sets the minimum values that must be selected in the select menu. + * + * @param minValues - The minimum values that must be selected + */ + setMinValues(minValues) { + this.data.min_values = minMaxValidator.parse(minValues); + return this; + } + /** + * Sets the maximum values that can be selected in the select menu. + * + * @param maxValues - The maximum values that can be selected + */ + setMaxValues(maxValues) { + this.data.max_values = minMaxValidator.parse(maxValues); + return this; + } + /** + * Sets the custom id for this select menu. + * + * @param customId - The custom id to use + */ + setCustomId(customId) { + this.data.custom_id = customIdValidator.parse(customId); + return this; + } + /** + * Sets whether this select menu is disabled. + * + * @param disabled - Whether this select menu is disabled + */ + setDisabled(disabled = true) { + this.data.disabled = disabledValidator.parse(disabled); + return this; + } + /** + * Sets whether this select menu is required. + * + * @remarks Only for use in modals. + * @param required - Whether this select menu is required + */ + setRequired(required = true) { + this.data.required = requiredValidator.parse(required); + return this; + } + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON() { + customIdValidator.parse(this.data.custom_id); + return { + ...this.data + }; + } +}; + +// src/components/selectMenu/ChannelSelectMenu.ts +var ChannelSelectMenuBuilder = class extends BaseSelectMenuBuilder { + static { + __name(this, "ChannelSelectMenuBuilder"); + } + /** + * Creates a new select menu from API data. + * + * @param data - The API data to create this select menu with + * @example + * Creating a select menu from an API data object: + * ```ts + * const selectMenu = new ChannelSelectMenuBuilder({ + * custom_id: 'a cool select menu', + * placeholder: 'select an option', + * max_values: 2, + * }); + * ``` + * @example + * Creating a select menu using setters and API data: + * ```ts + * const selectMenu = new ChannelSelectMenuBuilder({ + * custom_id: 'a cool select menu', + * }) + * .addChannelTypes(ChannelType.GuildText, ChannelType.GuildAnnouncement) + * .setMinValues(2); + * ``` + */ + constructor(data) { + super({ ...data, type: ComponentType9.ChannelSelect }); + } + /** + * Adds channel types to this select menu. + * + * @param types - The channel types to use + */ + addChannelTypes(...types) { + const normalizedTypes = normalizeArray(types); + this.data.channel_types ??= []; + this.data.channel_types.push(...channelTypesValidator.parse(normalizedTypes)); + return this; + } + /** + * Sets channel types for this select menu. + * + * @param types - The channel types to use + */ + setChannelTypes(...types) { + const normalizedTypes = normalizeArray(types); + this.data.channel_types ??= []; + this.data.channel_types.splice(0, this.data.channel_types.length, ...channelTypesValidator.parse(normalizedTypes)); + return this; + } + /** + * Adds default channels to this auto populated select menu. + * + * @param channels - The channels to add + */ + addDefaultChannels(...channels) { + const normalizedValues = normalizeArray(channels); + optionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length); + this.data.default_values ??= []; + this.data.default_values.push( + ...normalizedValues.map((id) => ({ + id, + type: SelectMenuDefaultValueType.Channel + })) + ); + return this; + } + /** + * Sets default channels for this auto populated select menu. + * + * @param channels - The channels to set + */ + setDefaultChannels(...channels) { + const normalizedValues = normalizeArray(channels); + optionsLengthValidator.parse(normalizedValues.length); + this.data.default_values = normalizedValues.map((id) => ({ + id, + type: SelectMenuDefaultValueType.Channel + })); + return this; + } + /** + * {@inheritDoc BaseSelectMenuBuilder.toJSON} + */ + toJSON() { + customIdValidator.parse(this.data.custom_id); + return { + ...this.data + }; + } +}; + +// src/components/selectMenu/MentionableSelectMenu.ts +import { + ComponentType as ComponentType10, + SelectMenuDefaultValueType as SelectMenuDefaultValueType2 +} from "discord-api-types/v10"; +var MentionableSelectMenuBuilder = class extends BaseSelectMenuBuilder { + static { + __name(this, "MentionableSelectMenuBuilder"); + } + /** + * Creates a new select menu from API data. + * + * @param data - The API data to create this select menu with + * @example + * Creating a select menu from an API data object: + * ```ts + * const selectMenu = new MentionableSelectMenuBuilder({ + * custom_id: 'a cool select menu', + * placeholder: 'select an option', + * max_values: 2, + * }); + * ``` + * @example + * Creating a select menu using setters and API data: + * ```ts + * const selectMenu = new MentionableSelectMenuBuilder({ + * custom_id: 'a cool select menu', + * }) + * .setMinValues(1); + * ``` + */ + constructor(data) { + super({ ...data, type: ComponentType10.MentionableSelect }); + } + /** + * Adds default roles to this auto populated select menu. + * + * @param roles - The roles to add + */ + addDefaultRoles(...roles) { + const normalizedValues = normalizeArray(roles); + optionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length); + this.data.default_values ??= []; + this.data.default_values.push( + ...normalizedValues.map((id) => ({ + id, + type: SelectMenuDefaultValueType2.Role + })) + ); + return this; + } + /** + * Adds default users to this auto populated select menu. + * + * @param users - The users to add + */ + addDefaultUsers(...users) { + const normalizedValues = normalizeArray(users); + optionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length); + this.data.default_values ??= []; + this.data.default_values.push( + ...normalizedValues.map((id) => ({ + id, + type: SelectMenuDefaultValueType2.User + })) + ); + return this; + } + /** + * Adds default values to this auto populated select menu. + * + * @param values - The values to add + */ + addDefaultValues(...values) { + const normalizedValues = normalizeArray(values); + optionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length); + this.data.default_values ??= []; + this.data.default_values.push(...normalizedValues); + return this; + } + /** + * Sets default values for this auto populated select menu. + * + * @param values - The values to set + */ + setDefaultValues(...values) { + const normalizedValues = normalizeArray(values); + optionsLengthValidator.parse(normalizedValues.length); + this.data.default_values = normalizedValues; + return this; + } +}; + +// src/components/selectMenu/RoleSelectMenu.ts +import { + ComponentType as ComponentType11, + SelectMenuDefaultValueType as SelectMenuDefaultValueType3 +} from "discord-api-types/v10"; +var RoleSelectMenuBuilder = class extends BaseSelectMenuBuilder { + static { + __name(this, "RoleSelectMenuBuilder"); + } + /** + * Creates a new select menu from API data. + * + * @param data - The API data to create this select menu with + * @example + * Creating a select menu from an API data object: + * ```ts + * const selectMenu = new RoleSelectMenuBuilder({ + * custom_id: 'a cool select menu', + * placeholder: 'select an option', + * max_values: 2, + * }); + * ``` + * @example + * Creating a select menu using setters and API data: + * ```ts + * const selectMenu = new RoleSelectMenuBuilder({ + * custom_id: 'a cool select menu', + * }) + * .setMinValues(1); + * ``` + */ + constructor(data) { + super({ ...data, type: ComponentType11.RoleSelect }); + } + /** + * Adds default roles to this auto populated select menu. + * + * @param roles - The roles to add + */ + addDefaultRoles(...roles) { + const normalizedValues = normalizeArray(roles); + optionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length); + this.data.default_values ??= []; + this.data.default_values.push( + ...normalizedValues.map((id) => ({ + id, + type: SelectMenuDefaultValueType3.Role + })) + ); + return this; + } + /** + * Sets default roles for this auto populated select menu. + * + * @param roles - The roles to set + */ + setDefaultRoles(...roles) { + const normalizedValues = normalizeArray(roles); + optionsLengthValidator.parse(normalizedValues.length); + this.data.default_values = normalizedValues.map((id) => ({ + id, + type: SelectMenuDefaultValueType3.Role + })); + return this; + } +}; + +// src/components/selectMenu/StringSelectMenu.ts +import { ComponentType as ComponentType13 } from "discord-api-types/v10"; + +// src/components/selectMenu/Assertions.ts +var Assertions_exports6 = {}; +__export(Assertions_exports6, { + selectMenuChannelPredicate: () => selectMenuChannelPredicate, + selectMenuMentionablePredicate: () => selectMenuMentionablePredicate, + selectMenuRolePredicate: () => selectMenuRolePredicate, + selectMenuStringOptionPredicate: () => selectMenuStringOptionPredicate, + selectMenuStringPredicate: () => selectMenuStringPredicate, + selectMenuUserPredicate: () => selectMenuUserPredicate +}); +import { Result as Result2, s as s6 } from "@sapphire/shapeshift"; +import { ChannelType as ChannelType2, ComponentType as ComponentType12, SelectMenuDefaultValueType as SelectMenuDefaultValueType4 } from "discord-api-types/v10"; +var selectMenuBasePredicate = s6.object({ + id: idValidator.optional(), + placeholder: s6.string().lengthLessThanOrEqual(150).optional(), + min_values: s6.number().greaterThanOrEqual(0).lessThanOrEqual(25).optional(), + max_values: s6.number().greaterThanOrEqual(0).lessThanOrEqual(25).optional(), + custom_id: customIdValidator, + disabled: s6.boolean().optional() +}); +var selectMenuChannelPredicate = selectMenuBasePredicate.extend({ + type: s6.literal(ComponentType12.ChannelSelect), + channel_types: s6.nativeEnum(ChannelType2).array().optional(), + default_values: s6.object({ id: s6.string(), type: s6.literal(SelectMenuDefaultValueType4.Channel) }).array().lengthLessThanOrEqual(25).optional() +}).setValidationEnabled(isValidationEnabled); +var selectMenuMentionablePredicate = selectMenuBasePredicate.extend({ + type: s6.literal(ComponentType12.MentionableSelect), + default_values: s6.object({ + id: s6.string(), + type: s6.union([s6.literal(SelectMenuDefaultValueType4.Role), s6.literal(SelectMenuDefaultValueType4.User)]) + }).array().lengthLessThanOrEqual(25).optional() +}).setValidationEnabled(isValidationEnabled); +var selectMenuRolePredicate = selectMenuBasePredicate.extend({ + type: s6.literal(ComponentType12.RoleSelect), + default_values: s6.object({ id: s6.string(), type: s6.literal(SelectMenuDefaultValueType4.Role) }).array().lengthLessThanOrEqual(25).optional() +}).setValidationEnabled(isValidationEnabled); +var selectMenuUserPredicate = selectMenuBasePredicate.extend({ + type: s6.literal(ComponentType12.UserSelect), + default_values: s6.object({ id: s6.string(), type: s6.literal(SelectMenuDefaultValueType4.User) }).array().lengthLessThanOrEqual(25).optional() +}).setValidationEnabled(isValidationEnabled); +var selectMenuStringOptionPredicate = s6.object({ + label: s6.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(100), + value: s6.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(100), + description: s6.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(100).optional(), + emoji: emojiValidator.optional(), + default: s6.boolean().optional() +}).setValidationEnabled(isValidationEnabled); +var selectMenuStringPredicate = selectMenuBasePredicate.extend({ + type: s6.literal(ComponentType12.StringSelect), + options: selectMenuStringOptionPredicate.array().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(25) +}).reshape((value) => { + if (value.min_values !== void 0 && value.options.length < value.min_values) { + return Result2.err(new RangeError(`The number of options must be greater than or equal to min_values`)); + } + if (value.min_values !== void 0 && value.max_values !== void 0 && value.min_values > value.max_values) { + return Result2.err( + new RangeError(`The maximum amount of options must be greater than or equal to the minimum amount of options`) + ); + } + return Result2.ok(value); +}).setValidationEnabled(isValidationEnabled); + +// src/components/selectMenu/StringSelectMenu.ts +var StringSelectMenuBuilder = class extends BaseSelectMenuBuilder { + static { + __name(this, "StringSelectMenuBuilder"); + } + /** + * The options within this select menu. + */ + options; + /** + * Creates a new select menu from API data. + * + * @param data - The API data to create this select menu with + * @example + * Creating a select menu from an API data object: + * ```ts + * const selectMenu = new StringSelectMenuBuilder({ + * custom_id: 'a cool select menu', + * placeholder: 'select an option', + * max_values: 2, + * options: [ + * { label: 'option 1', value: '1' }, + * { label: 'option 2', value: '2' }, + * { label: 'option 3', value: '3' }, + * ], + * }); + * ``` + * @example + * Creating a select menu using setters and API data: + * ```ts + * const selectMenu = new StringSelectMenuBuilder({ + * custom_id: 'a cool select menu', + * }) + * .setMinValues(1) + * .addOptions({ + * label: 'Catchy', + * value: 'catch', + * }); + * ``` + */ + constructor(data) { + const { options, ...initData } = data ?? {}; + super({ ...initData, type: ComponentType13.StringSelect }); + this.options = options?.map((option) => new StringSelectMenuOptionBuilder(option)) ?? []; + } + /** + * Adds options to this select menu. + * + * @param options - The options to add + */ + addOptions(...options) { + const normalizedOptions = normalizeArray(options); + optionsLengthValidator.parse(this.options.length + normalizedOptions.length); + this.options.push( + ...normalizedOptions.map( + (normalizedOption) => normalizedOption instanceof StringSelectMenuOptionBuilder ? normalizedOption : new StringSelectMenuOptionBuilder(selectMenuStringOptionPredicate.parse(normalizedOption)) + ) + ); + return this; + } + /** + * Sets the options for this select menu. + * + * @param options - The options to set + */ + setOptions(...options) { + return this.spliceOptions(0, this.options.length, ...options); + } + /** + * Removes, replaces, or inserts options for this select menu. + * + * @remarks + * This method behaves similarly + * to {@link https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/splice | Array.prototype.splice()}. + * It's useful for modifying and adjusting the order of existing options. + * @example + * Remove the first option: + * ```ts + * selectMenu.spliceOptions(0, 1); + * ``` + * @example + * Remove the first n option: + * ```ts + * const n = 4; + * selectMenu.spliceOptions(0, n); + * ``` + * @example + * Remove the last option: + * ```ts + * selectMenu.spliceOptions(-1, 1); + * ``` + * @param index - The index to start at + * @param deleteCount - The number of options to remove + * @param options - The replacing option objects or builders + */ + spliceOptions(index, deleteCount, ...options) { + const normalizedOptions = normalizeArray(options); + const clone = [...this.options]; + clone.splice( + index, + deleteCount, + ...normalizedOptions.map( + (normalizedOption) => normalizedOption instanceof StringSelectMenuOptionBuilder ? normalizedOption : new StringSelectMenuOptionBuilder(selectMenuStringOptionPredicate.parse(normalizedOption)) + ) + ); + optionsLengthValidator.parse(clone.length); + this.options.splice(0, this.options.length, ...clone); + return this; + } + /** + * {@inheritDoc BaseSelectMenuBuilder.toJSON} + */ + toJSON() { + validateRequiredSelectMenuParameters(this.options, this.data.custom_id); + return { + ...this.data, + options: this.options.map((option) => option.toJSON()) + }; + } +}; + +// src/components/selectMenu/UserSelectMenu.ts +import { + ComponentType as ComponentType14, + SelectMenuDefaultValueType as SelectMenuDefaultValueType5 +} from "discord-api-types/v10"; +var UserSelectMenuBuilder = class extends BaseSelectMenuBuilder { + static { + __name(this, "UserSelectMenuBuilder"); + } + /** + * Creates a new select menu from API data. + * + * @param data - The API data to create this select menu with + * @example + * Creating a select menu from an API data object: + * ```ts + * const selectMenu = new UserSelectMenuBuilder({ + * custom_id: 'a cool select menu', + * placeholder: 'select an option', + * max_values: 2, + * }); + * ``` + * @example + * Creating a select menu using setters and API data: + * ```ts + * const selectMenu = new UserSelectMenuBuilder({ + * custom_id: 'a cool select menu', + * }) + * .setMinValues(1); + * ``` + */ + constructor(data) { + super({ ...data, type: ComponentType14.UserSelect }); + } + /** + * Adds default users to this auto populated select menu. + * + * @param users - The users to add + */ + addDefaultUsers(...users) { + const normalizedValues = normalizeArray(users); + optionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length); + this.data.default_values ??= []; + this.data.default_values.push( + ...normalizedValues.map((id) => ({ + id, + type: SelectMenuDefaultValueType5.User + })) + ); + return this; + } + /** + * Sets default users for this auto populated select menu. + * + * @param users - The users to set + */ + setDefaultUsers(...users) { + const normalizedValues = normalizeArray(users); + optionsLengthValidator.parse(normalizedValues.length); + this.data.default_values = normalizedValues.map((id) => ({ + id, + type: SelectMenuDefaultValueType5.User + })); + return this; + } +}; + +// src/components/textInput/TextInput.ts +import { isJSONEncodable } from "@discordjs/util"; +import { ComponentType as ComponentType15 } from "discord-api-types/v10"; +import isEqual from "fast-deep-equal"; +var TextInputBuilder = class extends ComponentBuilder { + static { + __name(this, "TextInputBuilder"); + } + /** + * Creates a new text input from API data. + * + * @param data - The API data to create this text input with + * @example + * Creating a text input from an API data object: + * ```ts + * const textInput = new TextInputBuilder({ + * custom_id: 'a cool text input', + * placeholder: 'Type something', + * style: TextInputStyle.Short, + * }); + * ``` + * @example + * Creating a text input using setters and API data: + * ```ts + * const textInput = new TextInputBuilder({ + * placeholder: 'Type something else', + * }) + * .setCustomId('woah') + * .setStyle(TextInputStyle.Paragraph); + * ``` + */ + constructor(data) { + super({ type: ComponentType15.TextInput, ...data }); + } + /** + * Sets the custom id for this text input. + * + * @param customId - The custom id to use + */ + setCustomId(customId) { + this.data.custom_id = customIdValidator.parse(customId); + return this; + } + /** + * Sets the label for this text input. + * + * @param label - The label to use + * @deprecated Use a label builder to create a label (and optionally a description) instead. + */ + setLabel(label) { + this.data.label = labelValidator.parse(label); + return this; + } + /** + * Sets the style for this text input. + * + * @param style - The style to use + */ + setStyle(style) { + this.data.style = textInputStyleValidator.parse(style); + return this; + } + /** + * Sets the minimum length of text for this text input. + * + * @param minLength - The minimum length of text for this text input + */ + setMinLength(minLength) { + this.data.min_length = minLengthValidator.parse(minLength); + return this; + } + /** + * Sets the maximum length of text for this text input. + * + * @param maxLength - The maximum length of text for this text input + */ + setMaxLength(maxLength) { + this.data.max_length = maxLengthValidator.parse(maxLength); + return this; + } + /** + * Sets the placeholder for this text input. + * + * @param placeholder - The placeholder to use + */ + setPlaceholder(placeholder) { + this.data.placeholder = placeholderValidator2.parse(placeholder); + return this; + } + /** + * Sets the value for this text input. + * + * @param value - The value to use + */ + setValue(value) { + this.data.value = valueValidator.parse(value); + return this; + } + /** + * Sets whether this text input is required. + * + * @param required - Whether this text input is required + */ + setRequired(required = true) { + this.data.required = requiredValidator.parse(required); + return this; + } + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON() { + validateRequiredParameters(this.data.custom_id, this.data.style); + return { + ...this.data + }; + } + /** + * Whether this is equal to another structure. + */ + equals(other) { + if (isJSONEncodable(other)) { + return isEqual(other.toJSON(), this.data); + } + return isEqual(other, this.data); + } +}; + +// src/components/label/Assertions.ts +var Assertions_exports7 = {}; +__export(Assertions_exports7, { + labelPredicate: () => labelPredicate +}); +import { s as s7 } from "@sapphire/shapeshift"; +import { ComponentType as ComponentType16 } from "discord-api-types/v10"; +var labelPredicate = s7.object({ + id: idValidator.optional(), + type: s7.literal(ComponentType16.Label), + label: s7.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(45), + description: s7.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(100).optional(), + component: s7.union([ + textInputPredicate, + selectMenuUserPredicate, + selectMenuRolePredicate, + selectMenuMentionablePredicate, + selectMenuChannelPredicate, + selectMenuStringPredicate, + fileUploadPredicate, + checkboxPredicate, + checkboxGroupPredicate, + radioGroupPredicate + ]) +}).setValidationEnabled(isValidationEnabled); + +// src/components/label/Label.ts +var LabelBuilder = class extends ComponentBuilder { + static { + __name(this, "LabelBuilder"); + } + /** + * @internal + */ + data; + /** + * Creates a new label. + * + * @param data - The API data to create this label with + * @example + * Creating a label from an API data object: + * ```ts + * const label = new LabelBuilder({ + * label: "label", + * component, + * }); + * ``` + * @example + * Creating a label using setters and API data: + * ```ts + * const label = new LabelBuilder({ + * label: 'label', + * component, + * }).setLabel('new text'); + * ``` + */ + constructor(data = {}) { + super({ type: ComponentType17.Label }); + const { component, ...rest } = data; + this.data = { + ...rest, + component: component ? createComponentBuilder(component) : void 0, + type: ComponentType17.Label + }; + } + /** + * Sets the label for this label. + * + * @param label - The label to use + */ + setLabel(label) { + this.data.label = label; + return this; + } + /** + * Sets the description for this label. + * + * @param description - The description to use + */ + setDescription(description) { + this.data.description = description; + return this; + } + /** + * Clears the description for this label. + */ + clearDescription() { + this.data.description = void 0; + return this; + } + /** + * Sets a string select menu component to this label. + * + * @param input - A function that returns a component builder or an already built builder + */ + setStringSelectMenuComponent(input) { + this.data.component = resolveBuilder(input, StringSelectMenuBuilder); + return this; + } + /** + * Sets a user select menu component to this label. + * + * @param input - A function that returns a component builder or an already built builder + */ + setUserSelectMenuComponent(input) { + this.data.component = resolveBuilder(input, UserSelectMenuBuilder); + return this; + } + /** + * Sets a role select menu component to this label. + * + * @param input - A function that returns a component builder or an already built builder + */ + setRoleSelectMenuComponent(input) { + this.data.component = resolveBuilder(input, RoleSelectMenuBuilder); + return this; + } + /** + * Sets a mentionable select menu component to this label. + * + * @param input - A function that returns a component builder or an already built builder + */ + setMentionableSelectMenuComponent(input) { + this.data.component = resolveBuilder(input, MentionableSelectMenuBuilder); + return this; + } + /** + * Sets a channel select menu component to this label. + * + * @param input - A function that returns a component builder or an already built builder + */ + setChannelSelectMenuComponent(input) { + this.data.component = resolveBuilder(input, ChannelSelectMenuBuilder); + return this; + } + /** + * Sets a text input component to this label. + * + * @param input - A function that returns a component builder or an already built builder + */ + setTextInputComponent(input) { + this.data.component = resolveBuilder(input, TextInputBuilder); + return this; + } + /** + * Sets a file upload component to this label. + * + * @param input - A function that returns a component builder or an already built builder + */ + setFileUploadComponent(input) { + this.data.component = resolveBuilder(input, FileUploadBuilder); + return this; + } + /** + * Sets a checkbox component to this label. + * + * @param input - A function that returns a component builder or an already built builder + */ + setCheckboxComponent(input) { + this.data.component = resolveBuilder(input, CheckboxBuilder); + return this; + } + /** + * Sets a checkbox group component to this label. + * + * @param input - A function that returns a component builder or an already built builder + */ + setCheckboxGroupComponent(input) { + this.data.component = resolveBuilder(input, CheckboxGroupBuilder); + return this; + } + /** + * Sets a radio group component to this label. + * + * @param input - A function that returns a component builder or an already built builder + */ + setRadioGroupComponent(input) { + this.data.component = resolveBuilder(input, RadioGroupBuilder); + return this; + } + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON() { + const { component, ...rest } = this.data; + const data = { + ...rest, + // The label predicate validates the component. + component: component?.toJSON() + }; + labelPredicate.parse(data); + return data; + } +}; + +// src/components/v2/Container.ts +import { ComponentType as ComponentType22 } from "discord-api-types/v10"; + +// src/components/v2/Assertions.ts +var Assertions_exports8 = {}; +__export(Assertions_exports8, { + accessoryPredicate: () => accessoryPredicate, + assertReturnOfBuilder: () => assertReturnOfBuilder, + containerColorPredicate: () => containerColorPredicate, + descriptionPredicate: () => descriptionPredicate2, + dividerPredicate: () => dividerPredicate, + filePredicate: () => filePredicate, + spacingPredicate: () => spacingPredicate, + spoilerPredicate: () => spoilerPredicate, + textDisplayContentPredicate: () => textDisplayContentPredicate, + unfurledMediaItemPredicate: () => unfurledMediaItemPredicate, + validateComponentArray: () => validateComponentArray +}); +import { s as s8 } from "@sapphire/shapeshift"; +import { SeparatorSpacingSize } from "discord-api-types/v10"; + +// src/components/v2/Thumbnail.ts +import { ComponentType as ComponentType18 } from "discord-api-types/v10"; +var ThumbnailBuilder = class extends ComponentBuilder { + static { + __name(this, "ThumbnailBuilder"); + } + /** + * Creates a new thumbnail from API data. + * + * @param data - The API data to create this thumbnail with + * @example + * Creating a thumbnail from an API data object: + * ```ts + * const thumbnail = new ThumbnailBuilder({ + * description: 'some text', + * media: { + * url: 'https://cdn.discordapp.com/embed/avatars/4.png', + * }, + * }); + * ``` + * @example + * Creating a thumbnail using setters and API data: + * ```ts + * const thumbnail = new ThumbnailBuilder({ + * media: { + * url: 'attachment://image.png', + * }, + * }) + * .setDescription('alt text'); + * ``` + */ + constructor(data = {}) { + super({ + type: ComponentType18.Thumbnail, + ...data, + media: data.media ? { url: data.media.url } : void 0 + }); + } + /** + * Sets the description of this thumbnail. + * + * @param description - The description to use + */ + setDescription(description) { + this.data.description = descriptionPredicate2.parse(description); + return this; + } + /** + * Clears the description of this thumbnail. + */ + clearDescription() { + this.data.description = void 0; + return this; + } + /** + * Sets the spoiler status of this thumbnail. + * + * @param spoiler - The spoiler status to use + */ + setSpoiler(spoiler = true) { + this.data.spoiler = spoilerPredicate.parse(spoiler); + return this; + } + /** + * Sets the media URL of this thumbnail. + * + * @param url - The URL to use + */ + setURL(url) { + this.data.media = unfurledMediaItemPredicate.parse({ url }); + return this; + } + /** + * {@inheritdoc ComponentBuilder.toJSON} + */ + toJSON() { + unfurledMediaItemPredicate.parse(this.data.media); + return { ...this.data }; + } +}; + +// src/components/v2/Assertions.ts +var unfurledMediaItemPredicate = s8.object({ + url: s8.string().url( + { allowedProtocols: ["http:", "https:", "attachment:"] }, + { message: "Invalid protocol for media URL. Must be http:, https:, or attachment:" } + ) +}).setValidationEnabled(isValidationEnabled); +var descriptionPredicate2 = s8.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(1024).setValidationEnabled(isValidationEnabled); +var filePredicate = s8.object({ + url: s8.string().url({ allowedProtocols: ["attachment:"] }, { message: "Invalid protocol for file URL. Must be attachment:" }) +}).setValidationEnabled(isValidationEnabled); +var spoilerPredicate = s8.boolean(); +var dividerPredicate = s8.boolean(); +var spacingPredicate = s8.nativeEnum(SeparatorSpacingSize); +var textDisplayContentPredicate = s8.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(4e3).setValidationEnabled(isValidationEnabled); +var accessoryPredicate = s8.instance(ButtonBuilder).or(s8.instance(ThumbnailBuilder)).setValidationEnabled(isValidationEnabled); +var containerColorPredicate = colorPredicate.nullish(); +function assertReturnOfBuilder(input, ExpectedInstanceOf) { + s8.instance(ExpectedInstanceOf).setValidationEnabled(isValidationEnabled).parse(input); +} +__name(assertReturnOfBuilder, "assertReturnOfBuilder"); +function validateComponentArray(input, min, max, ExpectedInstanceOf) { + (ExpectedInstanceOf ? s8.instance(ExpectedInstanceOf) : s8.instance(ComponentBuilder)).array().lengthGreaterThanOrEqual(min).lengthLessThanOrEqual(max).setValidationEnabled(isValidationEnabled).parse(input); +} +__name(validateComponentArray, "validateComponentArray"); + +// src/components/v2/File.ts +import { ComponentType as ComponentType19 } from "discord-api-types/v10"; +var FileBuilder = class extends ComponentBuilder { + static { + __name(this, "FileBuilder"); + } + /** + * Creates a new file from API data. + * + * @param data - The API data to create this file with + * @example + * Creating a file from an API data object: + * ```ts + * const file = new FileBuilder({ + * spoiler: true, + * file: { + * url: 'attachment://file.png', + * }, + * }); + * ``` + * @example + * Creating a file using setters and API data: + * ```ts + * const file = new FileBuilder({ + * file: { + * url: 'attachment://image.jpg', + * }, + * }) + * .setSpoiler(false); + * ``` + */ + constructor(data = {}) { + super({ type: ComponentType19.File, ...data, file: data.file ? { url: data.file.url } : void 0 }); + } + /** + * Sets the spoiler status of this file. + * + * @param spoiler - The spoiler status to use + */ + setSpoiler(spoiler = true) { + this.data.spoiler = spoilerPredicate.parse(spoiler); + return this; + } + /** + * Sets the media URL of this file. + * + * @param url - The URL to use + */ + setURL(url) { + this.data.file = filePredicate.parse({ url }); + return this; + } + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON() { + filePredicate.parse(this.data.file); + return { ...this.data, file: { ...this.data.file } }; + } +}; + +// src/components/v2/Separator.ts +import { ComponentType as ComponentType20 } from "discord-api-types/v10"; +var SeparatorBuilder = class extends ComponentBuilder { + static { + __name(this, "SeparatorBuilder"); + } + /** + * Creates a new separator from API data. + * + * @param data - The API data to create this separator with + * @example + * Creating a separator from an API data object: + * ```ts + * const separator = new SeparatorBuilder({ + * spacing: SeparatorSpacingSize.Small, + * divider: true, + * }); + * ``` + * @example + * Creating a separator using setters and API data: + * ```ts + * const separator = new SeparatorBuilder({ + * spacing: SeparatorSpacingSize.Large, + * }) + * .setDivider(false); + * ``` + */ + constructor(data = {}) { + super({ + type: ComponentType20.Separator, + ...data + }); + } + /** + * Sets whether this separator should show a divider line. + * + * @param divider - Whether to show a divider line + */ + setDivider(divider = true) { + this.data.divider = dividerPredicate.parse(divider); + return this; + } + /** + * Sets the spacing of this separator. + * + * @param spacing - The spacing to use + */ + setSpacing(spacing) { + this.data.spacing = spacingPredicate.parse(spacing); + return this; + } + /** + * Clears the spacing of this separator. + */ + clearSpacing() { + this.data.spacing = void 0; + return this; + } + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON() { + return { ...this.data }; + } +}; + +// src/components/v2/TextDisplay.ts +import { ComponentType as ComponentType21 } from "discord-api-types/v10"; +var TextDisplayBuilder = class extends ComponentBuilder { + static { + __name(this, "TextDisplayBuilder"); + } + /** + * Creates a new text display from API data. + * + * @param data - The API data to create this text display with + * @example + * Creating a text display from an API data object: + * ```ts + * const textDisplay = new TextDisplayBuilder({ + * content: 'some text', + * }); + * ``` + * @example + * Creating a text display using setters and API data: + * ```ts + * const textDisplay = new TextDisplayBuilder({ + * content: 'old text', + * }) + * .setContent('new text'); + * ``` + */ + constructor(data = {}) { + super({ + type: ComponentType21.TextDisplay, + ...data + }); + } + /** + * Sets the text of this text display. + * + * @param content - The text to use + */ + setContent(content) { + this.data.content = textDisplayContentPredicate.parse(content); + return this; + } + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON() { + textDisplayContentPredicate.parse(this.data.content); + return { ...this.data }; + } +}; + +// src/components/v2/Container.ts +var ContainerBuilder = class extends ComponentBuilder { + static { + __name(this, "ContainerBuilder"); + } + /** + * The components within this container. + */ + components; + /** + * Creates a new container from API data. + * + * @param data - The API data to create this container with + * @example + * Creating a container from an API data object: + * ```ts + * const container = new ContainerBuilder({ + * components: [ + * { + * content: "Some text here", + * type: ComponentType.TextDisplay, + * }, + * ], + * }); + * ``` + * @example + * Creating a container using setters and API data: + * ```ts + * const container = new ContainerBuilder({ + * components: [ + * { + * content: "# Heading", + * type: ComponentType.TextDisplay, + * }, + * ], + * }) + * .addSeparatorComponents(separator) + * .addSectionComponents(section); + * ``` + */ + constructor({ components, ...data } = {}) { + super({ type: ComponentType22.Container, ...data }); + this.components = components?.map((component) => createComponentBuilder(component)) ?? []; + } + /** + * Sets the accent color of this container. + * + * @param color - The color to use + */ + setAccentColor(color) { + containerColorPredicate.parse(color); + if (Array.isArray(color)) { + const [red, green, blue] = color; + this.data.accent_color = (red << 16) + (green << 8) + blue; + return this; + } + this.data.accent_color = color; + return this; + } + /** + * Clears the accent color of this container. + */ + clearAccentColor() { + this.data.accent_color = void 0; + return this; + } + /** + * Adds action row components to this container. + * + * @param components - The action row components to add + */ + addActionRowComponents(...components) { + this.components.push( + ...normalizeArray(components).map((component) => resolveBuilder(component, ActionRowBuilder)) + ); + return this; + } + /** + * Adds file components to this container. + * + * @param components - The file components to add + */ + addFileComponents(...components) { + this.components.push(...normalizeArray(components).map((component) => resolveBuilder(component, FileBuilder))); + return this; + } + /** + * Adds media gallery components to this container. + * + * @param components - The media gallery components to add + */ + addMediaGalleryComponents(...components) { + this.components.push( + ...normalizeArray(components).map((component) => resolveBuilder(component, MediaGalleryBuilder)) + ); + return this; + } + /** + * Adds section components to this container. + * + * @param components - The section components to add + */ + addSectionComponents(...components) { + this.components.push(...normalizeArray(components).map((component) => resolveBuilder(component, SectionBuilder))); + return this; + } + /** + * Adds separator components to this container. + * + * @param components - The separator components to add + */ + addSeparatorComponents(...components) { + this.components.push(...normalizeArray(components).map((component) => resolveBuilder(component, SeparatorBuilder))); + return this; + } + /** + * Adds text display components to this container. + * + * @param components - The text display components to add + */ + addTextDisplayComponents(...components) { + this.components.push( + ...normalizeArray(components).map((component) => resolveBuilder(component, TextDisplayBuilder)) + ); + return this; + } + /** + * Removes, replaces, or inserts components for this container. + * + * @param index - The index to start removing, replacing or inserting components + * @param deleteCount - The amount of components to remove + * @param components - The components to set + */ + spliceComponents(index, deleteCount, ...components) { + this.components.splice( + index, + deleteCount, + ...normalizeArray(components).map( + (component) => component instanceof ComponentBuilder ? component : createComponentBuilder(component) + ) + ); + return this; + } + /** + * Sets the spoiler status of this container. + * + * @param spoiler - The spoiler status to use + */ + setSpoiler(spoiler = true) { + this.data.spoiler = spoilerPredicate.parse(spoiler); + return this; + } + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON() { + return { + ...this.data, + components: this.components.map((component) => component.toJSON()) + }; + } +}; + +// src/components/v2/MediaGallery.ts +import { ComponentType as ComponentType23 } from "discord-api-types/v10"; + +// src/components/v2/MediaGalleryItem.ts +var MediaGalleryItemBuilder = class { + static { + __name(this, "MediaGalleryItemBuilder"); + } + /** + * The API data associated with this media gallery item. + */ + data; + /** + * Creates a new media gallery item from API data. + * + * @param data - The API data to create this media gallery item with + * @example + * Creating a media gallery item from an API data object: + * ```ts + * const item = new MediaGalleryItemBuilder({ + * description: "Some text here", + * media: { + * url: 'https://cdn.discordapp.com/embed/avatars/2.png', + * }, + * }); + * ``` + * @example + * Creating a media gallery item using setters and API data: + * ```ts + * const item = new MediaGalleryItemBuilder({ + * media: { + * url: 'https://cdn.discordapp.com/embed/avatars/5.png', + * }, + * }) + * .setDescription("alt text"); + * ``` + */ + constructor(data = {}) { + this.data = data; + } + /** + * Sets the description of this media gallery item. + * + * @param description - The description to use + */ + setDescription(description) { + this.data.description = descriptionPredicate2.parse(description); + return this; + } + /** + * Clears the description of this media gallery item. + */ + clearDescription() { + this.data.description = void 0; + return this; + } + /** + * Sets the spoiler status of this media gallery item. + * + * @param spoiler - The spoiler status to use + */ + setSpoiler(spoiler = true) { + this.data.spoiler = spoilerPredicate.parse(spoiler); + return this; + } + /** + * Sets the media URL of this media gallery item. + * + * @param url - The URL to use + */ + setURL(url) { + this.data.media = unfurledMediaItemPredicate.parse({ url }); + return this; + } + /** + * Serializes this builder to API-compatible JSON data. + * + * @remarks + * This method runs validations on the data before serializing it. + * As such, it may throw an error if the data is invalid. + */ + toJSON() { + unfurledMediaItemPredicate.parse(this.data.media); + return { ...this.data }; + } +}; + +// src/components/v2/MediaGallery.ts +var MediaGalleryBuilder = class extends ComponentBuilder { + static { + __name(this, "MediaGalleryBuilder"); + } + /** + * The components within this container. + */ + items; + /** + * Creates a new media gallery from API data. + * + * @param data - The API data to create this media gallery with + * @example + * Creating a media gallery from an API data object: + * ```ts + * const mediaGallery = new MediaGalleryBuilder({ + * items: [ + * { + * description: "Some text here", + * media: { + * url: 'https://cdn.discordapp.com/embed/avatars/2.png', + * }, + * }, + * ], + * }); + * ``` + * @example + * Creating a media gallery using setters and API data: + * ```ts + * const mediaGallery = new MediaGalleryBuilder({ + * items: [ + * { + * description: "alt text", + * media: { + * url: 'https://cdn.discordapp.com/embed/avatars/5.png', + * }, + * }, + * ], + * }) + * .addItems(item2, item3); + * ``` + */ + constructor({ items, ...data } = {}) { + super({ type: ComponentType23.MediaGallery, ...data }); + this.items = items?.map((item) => new MediaGalleryItemBuilder(item)) ?? []; + } + /** + * Adds items to this media gallery. + * + * @param items - The items to add + */ + addItems(...items) { + this.items.push( + ...normalizeArray(items).map((input) => { + const result = resolveBuilder(input, MediaGalleryItemBuilder); + assertReturnOfBuilder(result, MediaGalleryItemBuilder); + return result; + }) + ); + return this; + } + /** + * Removes, replaces, or inserts media gallery items for this media gallery. + * + * @param index - The index to start removing, replacing or inserting items + * @param deleteCount - The amount of items to remove + * @param items - The items to insert + */ + spliceItems(index, deleteCount, ...items) { + this.items.splice( + index, + deleteCount, + ...normalizeArray(items).map((input) => { + const result = resolveBuilder(input, MediaGalleryItemBuilder); + assertReturnOfBuilder(result, MediaGalleryItemBuilder); + return result; + }) + ); + return this; + } + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON() { + validateComponentArray(this.items, 1, 10, MediaGalleryItemBuilder); + return { + ...this.data, + items: this.items.map((item) => item.toJSON()) + }; + } +}; + +// src/components/v2/Section.ts +import { ComponentType as ComponentType24 } from "discord-api-types/v10"; +var SectionBuilder = class extends ComponentBuilder { + static { + __name(this, "SectionBuilder"); + } + /** + * The components within this section. + */ + components; + /** + * The accessory of this section. + */ + accessory; + /** + * Creates a new section from API data. + * + * @param data - The API data to create this section with + * @example + * Creating a section from an API data object: + * ```ts + * const section = new SectionBuilder({ + * components: [ + * { + * content: "Some text here", + * type: ComponentType.TextDisplay, + * }, + * ], + * accessory: { + * media: { + * url: 'https://cdn.discordapp.com/embed/avatars/3.png', + * }, + * } + * }); + * ``` + * @example + * Creating a section using setters and API data: + * ```ts + * const section = new SectionBuilder({ + * components: [ + * { + * content: "# Heading", + * type: ComponentType.TextDisplay, + * }, + * ], + * }) + * .setPrimaryButtonAccessory(button); + * ``` + */ + constructor({ components, accessory, ...data } = {}) { + super({ type: ComponentType24.Section, ...data }); + this.components = components?.map((component) => createComponentBuilder(component)) ?? []; + this.accessory = accessory ? createComponentBuilder(accessory) : void 0; + } + /** + * Sets the accessory of this section to a button. + * + * @param accessory - The accessory to use + */ + setButtonAccessory(accessory) { + Reflect.set(this, "accessory", accessoryPredicate.parse(resolveBuilder(accessory, ButtonBuilder))); + return this; + } + /** + * Sets the accessory of this section to a thumbnail. + * + * @param accessory - The accessory to use + */ + setThumbnailAccessory(accessory) { + Reflect.set(this, "accessory", accessoryPredicate.parse(resolveBuilder(accessory, ThumbnailBuilder))); + return this; + } + /** + * Adds text display components to this section. + * + * @param components - The text display components to add + */ + addTextDisplayComponents(...components) { + this.components.push( + ...normalizeArray(components).map((input) => { + const result = resolveBuilder(input, TextDisplayBuilder); + assertReturnOfBuilder(result, TextDisplayBuilder); + return result; + }) + ); + return this; + } + /** + * Removes, replaces, or inserts text display components for this section. + * + * @param index - The index to start removing, replacing or inserting text display components + * @param deleteCount - The amount of text display components to remove + * @param components - The text display components to insert + */ + spliceTextDisplayComponents(index, deleteCount, ...components) { + this.components.splice( + index, + deleteCount, + ...normalizeArray(components).map((input) => { + const result = resolveBuilder(input, TextDisplayBuilder); + assertReturnOfBuilder(result, TextDisplayBuilder); + return result; + }) + ); + return this; + } + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON() { + validateComponentArray(this.components, 1, 3, TextDisplayBuilder); + return { + ...this.data, + components: this.components.map((component) => component.toJSON()), + accessory: accessoryPredicate.parse(this.accessory).toJSON() + }; + } +}; + +// src/components/Components.ts +function createComponentBuilder(data) { + if (data instanceof ComponentBuilder) { + return data; + } + switch (data.type) { + case ComponentType25.ActionRow: + return new ActionRowBuilder(data); + case ComponentType25.Button: + return new ButtonBuilder(data); + case ComponentType25.StringSelect: + return new StringSelectMenuBuilder(data); + case ComponentType25.TextInput: + return new TextInputBuilder(data); + case ComponentType25.UserSelect: + return new UserSelectMenuBuilder(data); + case ComponentType25.RoleSelect: + return new RoleSelectMenuBuilder(data); + case ComponentType25.MentionableSelect: + return new MentionableSelectMenuBuilder(data); + case ComponentType25.ChannelSelect: + return new ChannelSelectMenuBuilder(data); + case ComponentType25.File: + return new FileBuilder(data); + case ComponentType25.Container: + return new ContainerBuilder(data); + case ComponentType25.Section: + return new SectionBuilder(data); + case ComponentType25.Separator: + return new SeparatorBuilder(data); + case ComponentType25.TextDisplay: + return new TextDisplayBuilder(data); + case ComponentType25.Thumbnail: + return new ThumbnailBuilder(data); + case ComponentType25.MediaGallery: + return new MediaGalleryBuilder(data); + case ComponentType25.Label: + return new LabelBuilder(data); + case ComponentType25.FileUpload: + return new FileUploadBuilder(data); + case ComponentType25.Checkbox: + return new CheckboxBuilder(data); + case ComponentType25.CheckboxGroup: + return new CheckboxGroupBuilder(data); + case ComponentType25.RadioGroup: + return new RadioGroupBuilder(data); + default: + throw new Error(`Cannot properly serialize component type: ${data.type}`); + } +} +__name(createComponentBuilder, "createComponentBuilder"); +function isBuilder(builder, Constructor) { + return builder instanceof Constructor; +} +__name(isBuilder, "isBuilder"); +function resolveBuilder(builder, Constructor) { + if (isBuilder(builder, Constructor)) { + return builder; + } + if (typeof builder === "function") { + return builder(new Constructor()); + } + return new Constructor(builder); +} +__name(resolveBuilder, "resolveBuilder"); + +// src/components/ActionRow.ts +var ActionRowBuilder = class extends ComponentBuilder { + static { + __name(this, "ActionRowBuilder"); + } + /** + * The components within this action row. + */ + components; + /** + * Creates a new action row from API data. + * + * @param data - The API data to create this action row with + * @example + * Creating an action row from an API data object: + * ```ts + * const actionRow = new ActionRowBuilder({ + * components: [ + * { + * custom_id: "custom id", + * label: "Type something", + * style: TextInputStyle.Short, + * type: ComponentType.TextInput, + * }, + * ], + * }); + * ``` + * @example + * Creating an action row using setters and API data: + * ```ts + * const actionRow = new ActionRowBuilder({ + * components: [ + * { + * custom_id: "custom id", + * label: "Click me", + * style: ButtonStyle.Primary, + * type: ComponentType.Button, + * }, + * ], + * }) + * .addComponents(button2, button3); + * ``` + */ + constructor({ components, ...data } = {}) { + super({ type: ComponentType26.ActionRow, ...data }); + this.components = components?.map((component) => createComponentBuilder(component)) ?? []; + } + /** + * Adds components to this action row. + * + * @param components - The components to add + */ + addComponents(...components) { + this.components.push(...normalizeArray(components)); + return this; + } + /** + * Sets components for this action row. + * + * @param components - The components to set + */ + setComponents(...components) { + this.components.splice(0, this.components.length, ...normalizeArray(components)); + return this; + } + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON() { + return { + ...this.data, + components: this.components.map((component) => component.toJSON()) + }; + } +}; + +// src/interactions/modals/Modal.ts +import { ComponentType as ComponentType27 } from "discord-api-types/v10"; + +// src/interactions/modals/Assertions.ts +var Assertions_exports9 = {}; +__export(Assertions_exports9, { + componentsValidator: () => componentsValidator, + titleValidator: () => titleValidator, + validateRequiredParameters: () => validateRequiredParameters2 +}); +import { s as s9 } from "@sapphire/shapeshift"; +var titleValidator = s9.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(45).setValidationEnabled(isValidationEnabled); +var componentsValidator = s9.union([s9.instance(ActionRowBuilder), s9.instance(LabelBuilder), s9.instance(TextDisplayBuilder)]).array().lengthGreaterThanOrEqual(1).setValidationEnabled(isValidationEnabled); +function validateRequiredParameters2(customId, title, components) { + customIdValidator.parse(customId); + titleValidator.parse(title); + componentsValidator.parse(components); +} +__name(validateRequiredParameters2, "validateRequiredParameters"); + +// src/interactions/modals/Modal.ts +var ModalBuilder = class { + static { + __name(this, "ModalBuilder"); + } + /** + * The API data associated with this modal. + */ + data; + /** + * The components within this modal. + */ + components = []; + /** + * Creates a new modal from API data. + * + * @param data - The API data to create this modal with + */ + constructor({ components, ...data } = {}) { + this.data = { ...data }; + this.components = components?.map((component) => createComponentBuilder(component)) ?? []; + } + /** + * Sets the title of this modal. + * + * @param title - The title to use + */ + setTitle(title) { + this.data.title = titleValidator.parse(title); + return this; + } + /** + * Sets the custom id of this modal. + * + * @param customId - The custom id to use + */ + setCustomId(customId) { + this.data.custom_id = customIdValidator.parse(customId); + return this; + } + /** + * Adds components to this modal. + * + * @param components - The components to add + * @deprecated Use {@link ModalBuilder.addLabelComponents} or {@link ModalBuilder.addTextDisplayComponents} instead + */ + addComponents(...components) { + this.components.push( + ...normalizeArray(components).map((component, idx) => { + if (component instanceof ActionRowBuilder || component instanceof LabelBuilder || component instanceof TextDisplayBuilder) { + return component; + } + if (component instanceof TextInputBuilder) { + return new ActionRowBuilder().addComponents(component); + } + if ("type" in component) { + if (component.type === ComponentType27.ActionRow) { + return new ActionRowBuilder(component); + } + if (component.type === ComponentType27.Label) { + return new LabelBuilder(component); + } + if (component.type === ComponentType27.TextDisplay) { + return new TextDisplayBuilder(component); + } + if (component.type === ComponentType27.TextInput) { + return new ActionRowBuilder().addComponents( + new TextInputBuilder(component) + ); + } + } + throw new TypeError(`Invalid component passed in ModalBuilder.addComponents at index ${idx}!`); + }) + ); + return this; + } + /** + * Adds label components to this modal. + * + * @param components - The components to add + */ + addLabelComponents(...components) { + const normalized = normalizeArray(components); + const resolved = normalized.map((label) => resolveBuilder(label, LabelBuilder)); + this.components.push(...resolved); + return this; + } + /** + * Adds text display components to this modal. + * + * @param components - The components to add + */ + addTextDisplayComponents(...components) { + const normalized = normalizeArray(components); + const resolved = normalized.map((row) => resolveBuilder(row, TextDisplayBuilder)); + this.components.push(...resolved); + return this; + } + /** + * Adds action rows to this modal. + * + * @param components - The components to add + * @deprecated Use {@link ModalBuilder.addLabelComponents} instead + */ + addActionRowComponents(...components) { + const normalized = normalizeArray(components); + const resolved = normalized.map((row) => resolveBuilder(row, ActionRowBuilder)); + this.components.push(...resolved); + return this; + } + /** + * Sets the labels for this modal. + * + * @param components - The components to set + */ + setLabelComponents(...components) { + const normalized = normalizeArray(components); + this.spliceLabelComponents(0, this.components.length, ...normalized); + return this; + } + /** + * Removes, replaces, or inserts labels for this modal. + * + * @remarks + * This method behaves similarly + * to {@link https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/splice | Array.prototype.splice()}. + * The maximum amount of labels that can be added is 5. + * + * It's useful for modifying and adjusting order of the already-existing labels of a modal. + * @example + * Remove the first label: + * ```ts + * modal.spliceLabelComponents(0, 1); + * ``` + * @example + * Remove the first n labels: + * ```ts + * const n = 4; + * modal.spliceLabelComponents(0, n); + * ``` + * @example + * Remove the last label: + * ```ts + * modal.spliceLabelComponents(-1, 1); + * ``` + * @param index - The index to start at + * @param deleteCount - The number of labels to remove + * @param labels - The replacing label objects + */ + spliceLabelComponents(index, deleteCount, ...labels) { + const resolved = labels.map((label) => resolveBuilder(label, LabelBuilder)); + this.components.splice(index, deleteCount, ...resolved); + return this; + } + /** + * Sets components for this modal. + * + * @param components - The components to set + * @deprecated Use {@link ModalBuilder.setLabelComponents} instead + */ + setComponents(...components) { + this.components.splice(0, this.components.length, ...normalizeArray(components)); + return this; + } + /** + * {@inheritDoc ComponentBuilder.toJSON} + */ + toJSON() { + validateRequiredParameters2(this.data.custom_id, this.data.title, this.components); + return { + ...this.data, + components: this.components.map((component) => component.toJSON()) + }; + } +}; + +// src/interactions/slashCommands/Assertions.ts +var Assertions_exports10 = {}; +__export(Assertions_exports10, { + assertReturnOfBuilder: () => assertReturnOfBuilder2, + contextsPredicate: () => contextsPredicate, + integrationTypesPredicate: () => integrationTypesPredicate, + localizationMapPredicate: () => localizationMapPredicate, + validateChoicesLength: () => validateChoicesLength, + validateDMPermission: () => validateDMPermission, + validateDefaultMemberPermissions: () => validateDefaultMemberPermissions, + validateDefaultPermission: () => validateDefaultPermission, + validateDescription: () => validateDescription, + validateLocale: () => validateLocale, + validateLocalizationMap: () => validateLocalizationMap, + validateMaxOptionsLength: () => validateMaxOptionsLength, + validateNSFW: () => validateNSFW, + validateName: () => validateName, + validateRequired: () => validateRequired, + validateRequiredParameters: () => validateRequiredParameters3 +}); +import { s as s10 } from "@sapphire/shapeshift"; +import { + ApplicationIntegrationType, + InteractionContextType, + Locale +} from "discord-api-types/v10"; +var namePredicate = s10.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(32).regex(/^[\p{Ll}\p{Lm}\p{Lo}\p{N}\p{sc=Devanagari}\p{sc=Thai}_-]+$/u).setValidationEnabled(isValidationEnabled); +function validateName(name) { + namePredicate.parse(name); +} +__name(validateName, "validateName"); +var descriptionPredicate3 = s10.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(100).setValidationEnabled(isValidationEnabled); +var localePredicate = s10.nativeEnum(Locale); +function validateDescription(description) { + descriptionPredicate3.parse(description); +} +__name(validateDescription, "validateDescription"); +var maxArrayLengthPredicate = s10.unknown().array().lengthLessThanOrEqual(25).setValidationEnabled(isValidationEnabled); +function validateLocale(locale) { + return localePredicate.parse(locale); +} +__name(validateLocale, "validateLocale"); +function validateMaxOptionsLength(options) { + maxArrayLengthPredicate.parse(options); +} +__name(validateMaxOptionsLength, "validateMaxOptionsLength"); +function validateRequiredParameters3(name, description, options) { + validateName(name); + validateDescription(description); + validateMaxOptionsLength(options); +} +__name(validateRequiredParameters3, "validateRequiredParameters"); +var booleanPredicate = s10.boolean(); +function validateDefaultPermission(value) { + booleanPredicate.parse(value); +} +__name(validateDefaultPermission, "validateDefaultPermission"); +function validateRequired(required) { + booleanPredicate.parse(required); +} +__name(validateRequired, "validateRequired"); +var choicesLengthPredicate = s10.number().lessThanOrEqual(25).setValidationEnabled(isValidationEnabled); +function validateChoicesLength(amountAdding, choices) { + choicesLengthPredicate.parse((choices?.length ?? 0) + amountAdding); +} +__name(validateChoicesLength, "validateChoicesLength"); +function assertReturnOfBuilder2(input, ExpectedInstanceOf) { + s10.instance(ExpectedInstanceOf).parse(input); +} +__name(assertReturnOfBuilder2, "assertReturnOfBuilder"); +var localizationMapPredicate = s10.object(Object.fromEntries(Object.values(Locale).map((locale) => [locale, s10.string().nullish()]))).strict().nullish().setValidationEnabled(isValidationEnabled); +function validateLocalizationMap(value) { + localizationMapPredicate.parse(value); +} +__name(validateLocalizationMap, "validateLocalizationMap"); +var dmPermissionPredicate = s10.boolean().nullish(); +function validateDMPermission(value) { + dmPermissionPredicate.parse(value); +} +__name(validateDMPermission, "validateDMPermission"); +var memberPermissionPredicate = s10.union([ + s10.bigint().transform((value) => value.toString()), + s10.number().safeInt().transform((value) => value.toString()), + s10.string().regex(/^\d+$/) +]).nullish(); +function validateDefaultMemberPermissions(permissions) { + return memberPermissionPredicate.parse(permissions); +} +__name(validateDefaultMemberPermissions, "validateDefaultMemberPermissions"); +function validateNSFW(value) { + booleanPredicate.parse(value); +} +__name(validateNSFW, "validateNSFW"); +var contextsPredicate = s10.array( + s10.nativeEnum(InteractionContextType).setValidationEnabled(isValidationEnabled) +); +var integrationTypesPredicate = s10.array( + s10.nativeEnum(ApplicationIntegrationType).setValidationEnabled(isValidationEnabled) +); + +// src/interactions/slashCommands/SlashCommandBuilder.ts +import { mix as mix6 } from "ts-mixer"; + +// src/interactions/slashCommands/mixins/NameAndDescription.ts +var SharedNameAndDescription = class { + static { + __name(this, "SharedNameAndDescription"); + } + /** + * The name of this command. + */ + name; + /** + * The name localizations of this command. + */ + name_localizations; + /** + * The description of this command. + */ + description; + /** + * The description localizations of this command. + */ + description_localizations; + /** + * Sets the name of this command. + * + * @param name - The name to use + */ + setName(name) { + validateName(name); + Reflect.set(this, "name", name); + return this; + } + /** + * Sets the description of this command. + * + * @param description - The description to use + */ + setDescription(description) { + validateDescription(description); + Reflect.set(this, "description", description); + return this; + } + /** + * Sets a name localization for this command. + * + * @param locale - The locale to set + * @param localizedName - The localized name for the given `locale` + */ + setNameLocalization(locale, localizedName) { + if (!this.name_localizations) { + Reflect.set(this, "name_localizations", {}); + } + const parsedLocale = validateLocale(locale); + if (localizedName === null) { + this.name_localizations[parsedLocale] = null; + return this; + } + validateName(localizedName); + this.name_localizations[parsedLocale] = localizedName; + return this; + } + /** + * Sets the name localizations for this command. + * + * @param localizedNames - The object of localized names to set + */ + setNameLocalizations(localizedNames) { + if (localizedNames === null) { + Reflect.set(this, "name_localizations", null); + return this; + } + Reflect.set(this, "name_localizations", {}); + for (const args of Object.entries(localizedNames)) { + this.setNameLocalization(...args); + } + return this; + } + /** + * Sets a description localization for this command. + * + * @param locale - The locale to set + * @param localizedDescription - The localized description for the given locale + */ + setDescriptionLocalization(locale, localizedDescription) { + if (!this.description_localizations) { + Reflect.set(this, "description_localizations", {}); + } + const parsedLocale = validateLocale(locale); + if (localizedDescription === null) { + this.description_localizations[parsedLocale] = null; + return this; + } + validateDescription(localizedDescription); + this.description_localizations[parsedLocale] = localizedDescription; + return this; + } + /** + * Sets the description localizations for this command. + * + * @param localizedDescriptions - The object of localized descriptions to set + */ + setDescriptionLocalizations(localizedDescriptions) { + if (localizedDescriptions === null) { + Reflect.set(this, "description_localizations", null); + return this; + } + Reflect.set(this, "description_localizations", {}); + for (const args of Object.entries(localizedDescriptions)) { + this.setDescriptionLocalization(...args); + } + return this; + } +}; + +// src/interactions/slashCommands/mixins/SharedSlashCommand.ts +import { + ApplicationCommandType +} from "discord-api-types/v10"; +var SharedSlashCommand = class { + static { + __name(this, "SharedSlashCommand"); + } + name = void 0; + name_localizations; + description = void 0; + description_localizations; + options = []; + contexts; + /** + * @deprecated Use {@link SharedSlashCommand.setDefaultMemberPermissions} or {@link SharedSlashCommand.setDMPermission} instead. + */ + default_permission = void 0; + default_member_permissions = void 0; + /** + * @deprecated Use {@link SharedSlashCommand.contexts} instead. + */ + dm_permission = void 0; + integration_types; + nsfw = void 0; + /** + * Sets the contexts of this command. + * + * @param contexts - The contexts + */ + setContexts(...contexts) { + Reflect.set(this, "contexts", contextsPredicate.parse(normalizeArray(contexts))); + return this; + } + /** + * Sets the integration types of this command. + * + * @param integrationTypes - The integration types + */ + setIntegrationTypes(...integrationTypes) { + Reflect.set(this, "integration_types", integrationTypesPredicate.parse(normalizeArray(integrationTypes))); + return this; + } + /** + * Sets whether the command is enabled by default when the application is added to a guild. + * + * @remarks + * If set to `false`, you will have to later `PUT` the permissions for this command. + * @param value - Whether or not to enable this command by default + * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} + * @deprecated Use {@link SharedSlashCommand.setDefaultMemberPermissions} or {@link SharedSlashCommand.setDMPermission} instead. + */ + setDefaultPermission(value) { + validateDefaultPermission(value); + Reflect.set(this, "default_permission", value); + return this; + } + /** + * Sets the default permissions a member should have in order to run the command. + * + * @remarks + * You can set this to `'0'` to disable the command by default. + * @param permissions - The permissions bit field to set + * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} + */ + setDefaultMemberPermissions(permissions) { + const permissionValue = validateDefaultMemberPermissions(permissions); + Reflect.set(this, "default_member_permissions", permissionValue); + return this; + } + /** + * Sets if the command is available in direct messages with the application. + * + * @remarks + * By default, commands are visible. This method is only for global commands. + * @param enabled - Whether the command should be enabled in direct messages + * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} + * @deprecated + * Use {@link SharedSlashCommand.setContexts} instead. + */ + setDMPermission(enabled) { + validateDMPermission(enabled); + Reflect.set(this, "dm_permission", enabled); + return this; + } + /** + * Sets whether this command is NSFW. + * + * @param nsfw - Whether this command is NSFW + */ + setNSFW(nsfw = true) { + validateNSFW(nsfw); + Reflect.set(this, "nsfw", nsfw); + return this; + } + /** + * Serializes this builder to API-compatible JSON data. + * + * @remarks + * This method runs validations on the data before serializing it. + * As such, it may throw an error if the data is invalid. + */ + toJSON() { + validateRequiredParameters3(this.name, this.description, this.options); + validateLocalizationMap(this.name_localizations); + validateLocalizationMap(this.description_localizations); + return { + ...this, + type: ApplicationCommandType.ChatInput, + options: this.options.map((option) => option.toJSON()) + }; + } +}; + +// src/interactions/slashCommands/options/attachment.ts +import { ApplicationCommandOptionType } from "discord-api-types/v10"; + +// src/interactions/slashCommands/mixins/ApplicationCommandOptionBase.ts +var ApplicationCommandOptionBase = class extends SharedNameAndDescription { + static { + __name(this, "ApplicationCommandOptionBase"); + } + /** + * Whether this option is required. + * + * @defaultValue `false` + */ + required = false; + /** + * Sets whether this option is required. + * + * @param required - Whether this option should be required + */ + setRequired(required) { + validateRequired(required); + Reflect.set(this, "required", required); + return this; + } + /** + * This method runs required validators on this builder. + */ + runRequiredValidations() { + validateRequiredParameters3(this.name, this.description, []); + validateLocalizationMap(this.name_localizations); + validateLocalizationMap(this.description_localizations); + validateRequired(this.required); + } +}; + +// src/interactions/slashCommands/options/attachment.ts +var SlashCommandAttachmentOption = class extends ApplicationCommandOptionBase { + static { + __name(this, "SlashCommandAttachmentOption"); + } + /** + * The type of this option. + */ + type = ApplicationCommandOptionType.Attachment; + /** + * {@inheritDoc ApplicationCommandOptionBase.toJSON} + */ + toJSON() { + this.runRequiredValidations(); + return { ...this }; + } +}; + +// src/interactions/slashCommands/options/boolean.ts +import { ApplicationCommandOptionType as ApplicationCommandOptionType2 } from "discord-api-types/v10"; +var SlashCommandBooleanOption = class extends ApplicationCommandOptionBase { + static { + __name(this, "SlashCommandBooleanOption"); + } + /** + * The type of this option. + */ + type = ApplicationCommandOptionType2.Boolean; + /** + * {@inheritDoc ApplicationCommandOptionBase.toJSON} + */ + toJSON() { + this.runRequiredValidations(); + return { ...this }; + } +}; + +// src/interactions/slashCommands/options/channel.ts +import { ApplicationCommandOptionType as ApplicationCommandOptionType3 } from "discord-api-types/v10"; +import { mix } from "ts-mixer"; + +// src/interactions/slashCommands/mixins/ApplicationCommandOptionChannelTypesMixin.ts +import { s as s11 } from "@sapphire/shapeshift"; +import { ChannelType as ChannelType3 } from "discord-api-types/v10"; +var allowedChannelTypes = [ + ChannelType3.GuildText, + ChannelType3.GuildVoice, + ChannelType3.GuildCategory, + ChannelType3.GuildAnnouncement, + ChannelType3.AnnouncementThread, + ChannelType3.PublicThread, + ChannelType3.PrivateThread, + ChannelType3.GuildStageVoice, + ChannelType3.GuildForum, + ChannelType3.GuildMedia +]; +var channelTypesPredicate = s11.array(s11.union(allowedChannelTypes.map((type) => s11.literal(type)))); +var ApplicationCommandOptionChannelTypesMixin = class { + static { + __name(this, "ApplicationCommandOptionChannelTypesMixin"); + } + /** + * The channel types of this option. + */ + channel_types; + /** + * Adds channel types to this option. + * + * @param channelTypes - The channel types + */ + addChannelTypes(...channelTypes) { + if (this.channel_types === void 0) { + Reflect.set(this, "channel_types", []); + } + this.channel_types.push(...channelTypesPredicate.parse(normalizeArray(channelTypes))); + return this; + } +}; + +// src/interactions/slashCommands/options/channel.ts +var SlashCommandChannelOption = class extends ApplicationCommandOptionBase { + /** + * The type of this option. + */ + type = ApplicationCommandOptionType3.Channel; + /** + * {@inheritDoc ApplicationCommandOptionBase.toJSON} + */ + toJSON() { + this.runRequiredValidations(); + return { ...this }; + } +}; +__name(SlashCommandChannelOption, "SlashCommandChannelOption"); +SlashCommandChannelOption = __decorateClass([ + mix(ApplicationCommandOptionChannelTypesMixin) +], SlashCommandChannelOption); + +// src/interactions/slashCommands/options/integer.ts +import { s as s14 } from "@sapphire/shapeshift"; +import { ApplicationCommandOptionType as ApplicationCommandOptionType5 } from "discord-api-types/v10"; +import { mix as mix2 } from "ts-mixer"; + +// src/interactions/slashCommands/mixins/ApplicationCommandNumericOptionMinMaxValueMixin.ts +var ApplicationCommandNumericOptionMinMaxValueMixin = class { + static { + __name(this, "ApplicationCommandNumericOptionMinMaxValueMixin"); + } + /** + * The maximum value of this option. + */ + max_value; + /** + * The minimum value of this option. + */ + min_value; +}; + +// src/interactions/slashCommands/mixins/ApplicationCommandOptionWithAutocompleteMixin.ts +import { s as s12 } from "@sapphire/shapeshift"; +var booleanPredicate2 = s12.boolean(); +var ApplicationCommandOptionWithAutocompleteMixin = class { + static { + __name(this, "ApplicationCommandOptionWithAutocompleteMixin"); + } + /** + * Whether this option utilizes autocomplete. + */ + autocomplete; + /** + * The type of this option. + * + * @privateRemarks Since this is present and this is a mixin, this is needed. + */ + type; + /** + * Whether this option uses autocomplete. + * + * @param autocomplete - Whether this option should use autocomplete + */ + setAutocomplete(autocomplete) { + booleanPredicate2.parse(autocomplete); + if (autocomplete && "choices" in this && Array.isArray(this.choices) && this.choices.length > 0) { + throw new RangeError("Autocomplete and choices are mutually exclusive to each other."); + } + Reflect.set(this, "autocomplete", autocomplete); + return this; + } +}; + +// src/interactions/slashCommands/mixins/ApplicationCommandOptionWithChoicesMixin.ts +import { s as s13 } from "@sapphire/shapeshift"; +import { ApplicationCommandOptionType as ApplicationCommandOptionType4 } from "discord-api-types/v10"; +var stringPredicate = s13.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(100); +var numberPredicate = s13.number().greaterThan(Number.NEGATIVE_INFINITY).lessThan(Number.POSITIVE_INFINITY); +var choicesPredicate = s13.object({ + name: stringPredicate, + name_localizations: localizationMapPredicate, + value: s13.union([stringPredicate, numberPredicate]) +}).array(); +var ApplicationCommandOptionWithChoicesMixin = class { + static { + __name(this, "ApplicationCommandOptionWithChoicesMixin"); + } + /** + * The choices of this option. + */ + choices; + /** + * The type of this option. + * + * @privateRemarks Since this is present and this is a mixin, this is needed. + */ + type; + /** + * Adds multiple choices to this option. + * + * @param choices - The choices to add + */ + addChoices(...choices) { + const normalizedChoices = normalizeArray(choices); + if (normalizedChoices.length > 0 && "autocomplete" in this && this.autocomplete) { + throw new RangeError("Autocomplete and choices are mutually exclusive to each other."); + } + choicesPredicate.parse(normalizedChoices); + if (this.choices === void 0) { + Reflect.set(this, "choices", []); + } + validateChoicesLength(normalizedChoices.length, this.choices); + for (const { name, name_localizations, value } of normalizedChoices) { + if (this.type === ApplicationCommandOptionType4.String) { + stringPredicate.parse(value); + } else { + numberPredicate.parse(value); + } + this.choices.push({ name, name_localizations, value }); + } + return this; + } + /** + * Sets multiple choices for this option. + * + * @param choices - The choices to set + */ + setChoices(...choices) { + const normalizedChoices = normalizeArray(choices); + if (normalizedChoices.length > 0 && "autocomplete" in this && this.autocomplete) { + throw new RangeError("Autocomplete and choices are mutually exclusive to each other."); + } + choicesPredicate.parse(normalizedChoices); + Reflect.set(this, "choices", []); + this.addChoices(normalizedChoices); + return this; + } +}; + +// src/interactions/slashCommands/options/integer.ts +var numberValidator = s14.number().int(); +var SlashCommandIntegerOption = class extends ApplicationCommandOptionBase { + /** + * The type of this option. + */ + type = ApplicationCommandOptionType5.Integer; + /** + * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMaxValue} + */ + setMaxValue(max) { + numberValidator.parse(max); + Reflect.set(this, "max_value", max); + return this; + } + /** + * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMinValue} + */ + setMinValue(min) { + numberValidator.parse(min); + Reflect.set(this, "min_value", min); + return this; + } + /** + * {@inheritDoc ApplicationCommandOptionBase.toJSON} + */ + toJSON() { + this.runRequiredValidations(); + if (this.autocomplete && Array.isArray(this.choices) && this.choices.length > 0) { + throw new RangeError("Autocomplete and choices are mutually exclusive to each other."); + } + return { ...this }; + } +}; +__name(SlashCommandIntegerOption, "SlashCommandIntegerOption"); +SlashCommandIntegerOption = __decorateClass([ + mix2( + ApplicationCommandNumericOptionMinMaxValueMixin, + ApplicationCommandOptionWithAutocompleteMixin, + ApplicationCommandOptionWithChoicesMixin + ) +], SlashCommandIntegerOption); + +// src/interactions/slashCommands/options/mentionable.ts +import { ApplicationCommandOptionType as ApplicationCommandOptionType6 } from "discord-api-types/v10"; +var SlashCommandMentionableOption = class extends ApplicationCommandOptionBase { + static { + __name(this, "SlashCommandMentionableOption"); + } + /** + * The type of this option. + */ + type = ApplicationCommandOptionType6.Mentionable; + /** + * {@inheritDoc ApplicationCommandOptionBase.toJSON} + */ + toJSON() { + this.runRequiredValidations(); + return { ...this }; + } +}; + +// src/interactions/slashCommands/options/number.ts +import { s as s15 } from "@sapphire/shapeshift"; +import { ApplicationCommandOptionType as ApplicationCommandOptionType7 } from "discord-api-types/v10"; +import { mix as mix3 } from "ts-mixer"; +var numberValidator2 = s15.number(); +var SlashCommandNumberOption = class extends ApplicationCommandOptionBase { + /** + * The type of this option. + */ + type = ApplicationCommandOptionType7.Number; + /** + * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMaxValue} + */ + setMaxValue(max) { + numberValidator2.parse(max); + Reflect.set(this, "max_value", max); + return this; + } + /** + * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMinValue} + */ + setMinValue(min) { + numberValidator2.parse(min); + Reflect.set(this, "min_value", min); + return this; + } + /** + * {@inheritDoc ApplicationCommandOptionBase.toJSON} + */ + toJSON() { + this.runRequiredValidations(); + if (this.autocomplete && Array.isArray(this.choices) && this.choices.length > 0) { + throw new RangeError("Autocomplete and choices are mutually exclusive to each other."); + } + return { ...this }; + } +}; +__name(SlashCommandNumberOption, "SlashCommandNumberOption"); +SlashCommandNumberOption = __decorateClass([ + mix3( + ApplicationCommandNumericOptionMinMaxValueMixin, + ApplicationCommandOptionWithAutocompleteMixin, + ApplicationCommandOptionWithChoicesMixin + ) +], SlashCommandNumberOption); + +// src/interactions/slashCommands/options/role.ts +import { ApplicationCommandOptionType as ApplicationCommandOptionType8 } from "discord-api-types/v10"; +var SlashCommandRoleOption = class extends ApplicationCommandOptionBase { + static { + __name(this, "SlashCommandRoleOption"); + } + /** + * The type of this option. + */ + type = ApplicationCommandOptionType8.Role; + /** + * {@inheritDoc ApplicationCommandOptionBase.toJSON} + */ + toJSON() { + this.runRequiredValidations(); + return { ...this }; + } +}; + +// src/interactions/slashCommands/options/string.ts +import { s as s16 } from "@sapphire/shapeshift"; +import { ApplicationCommandOptionType as ApplicationCommandOptionType9 } from "discord-api-types/v10"; +import { mix as mix4 } from "ts-mixer"; +var minLengthValidator2 = s16.number().greaterThanOrEqual(0).lessThanOrEqual(6e3); +var maxLengthValidator2 = s16.number().greaterThanOrEqual(1).lessThanOrEqual(6e3); +var SlashCommandStringOption = class extends ApplicationCommandOptionBase { + /** + * The type of this option. + */ + type = ApplicationCommandOptionType9.String; + /** + * The maximum length of this option. + */ + max_length; + /** + * The minimum length of this option. + */ + min_length; + /** + * Sets the maximum length of this string option. + * + * @param max - The maximum length this option can be + */ + setMaxLength(max) { + maxLengthValidator2.parse(max); + Reflect.set(this, "max_length", max); + return this; + } + /** + * Sets the minimum length of this string option. + * + * @param min - The minimum length this option can be + */ + setMinLength(min) { + minLengthValidator2.parse(min); + Reflect.set(this, "min_length", min); + return this; + } + /** + * {@inheritDoc ApplicationCommandOptionBase.toJSON} + */ + toJSON() { + this.runRequiredValidations(); + if (this.autocomplete && Array.isArray(this.choices) && this.choices.length > 0) { + throw new RangeError("Autocomplete and choices are mutually exclusive to each other."); + } + return { ...this }; + } +}; +__name(SlashCommandStringOption, "SlashCommandStringOption"); +SlashCommandStringOption = __decorateClass([ + mix4(ApplicationCommandOptionWithAutocompleteMixin, ApplicationCommandOptionWithChoicesMixin) +], SlashCommandStringOption); + +// src/interactions/slashCommands/options/user.ts +import { ApplicationCommandOptionType as ApplicationCommandOptionType10 } from "discord-api-types/v10"; +var SlashCommandUserOption = class extends ApplicationCommandOptionBase { + static { + __name(this, "SlashCommandUserOption"); + } + /** + * The type of this option. + */ + type = ApplicationCommandOptionType10.User; + /** + * {@inheritDoc ApplicationCommandOptionBase.toJSON} + */ + toJSON() { + this.runRequiredValidations(); + return { ...this }; + } +}; + +// src/interactions/slashCommands/mixins/SharedSlashCommandOptions.ts +var SharedSlashCommandOptions = class { + static { + __name(this, "SharedSlashCommandOptions"); + } + options; + /** + * Adds a boolean option. + * + * @param input - A function that returns an option builder or an already built builder + */ + addBooleanOption(input) { + return this._sharedAddOptionMethod(input, SlashCommandBooleanOption); + } + /** + * Adds a user option. + * + * @param input - A function that returns an option builder or an already built builder + */ + addUserOption(input) { + return this._sharedAddOptionMethod(input, SlashCommandUserOption); + } + /** + * Adds a channel option. + * + * @param input - A function that returns an option builder or an already built builder + */ + addChannelOption(input) { + return this._sharedAddOptionMethod(input, SlashCommandChannelOption); + } + /** + * Adds a role option. + * + * @param input - A function that returns an option builder or an already built builder + */ + addRoleOption(input) { + return this._sharedAddOptionMethod(input, SlashCommandRoleOption); + } + /** + * Adds an attachment option. + * + * @param input - A function that returns an option builder or an already built builder + */ + addAttachmentOption(input) { + return this._sharedAddOptionMethod(input, SlashCommandAttachmentOption); + } + /** + * Adds a mentionable option. + * + * @param input - A function that returns an option builder or an already built builder + */ + addMentionableOption(input) { + return this._sharedAddOptionMethod(input, SlashCommandMentionableOption); + } + /** + * Adds a string option. + * + * @param input - A function that returns an option builder or an already built builder + */ + addStringOption(input) { + return this._sharedAddOptionMethod(input, SlashCommandStringOption); + } + /** + * Adds an integer option. + * + * @param input - A function that returns an option builder or an already built builder + */ + addIntegerOption(input) { + return this._sharedAddOptionMethod(input, SlashCommandIntegerOption); + } + /** + * Adds a number option. + * + * @param input - A function that returns an option builder or an already built builder + */ + addNumberOption(input) { + return this._sharedAddOptionMethod(input, SlashCommandNumberOption); + } + /** + * Where the actual adding magic happens. ✨ + * + * @param input - The input. What else? + * @param Instance - The instance of whatever is being added + * @internal + */ + _sharedAddOptionMethod(input, Instance) { + const { options } = this; + validateMaxOptionsLength(options); + const result = typeof input === "function" ? input(new Instance()) : input; + assertReturnOfBuilder2(result, Instance); + options.push(result); + return this; + } +}; + +// src/interactions/slashCommands/SlashCommandSubcommands.ts +import { + ApplicationCommandOptionType as ApplicationCommandOptionType11 +} from "discord-api-types/v10"; +import { mix as mix5 } from "ts-mixer"; +var SlashCommandSubcommandGroupBuilder = class { + /** + * The name of this subcommand group. + */ + name = void 0; + /** + * The description of this subcommand group. + */ + description = void 0; + /** + * The subcommands within this subcommand group. + */ + options = []; + /** + * Adds a new subcommand to this group. + * + * @param input - A function that returns a subcommand builder or an already built builder + */ + addSubcommand(input) { + const { options } = this; + validateMaxOptionsLength(options); + const result = typeof input === "function" ? input(new SlashCommandSubcommandBuilder()) : input; + assertReturnOfBuilder2(result, SlashCommandSubcommandBuilder); + options.push(result); + return this; + } + /** + * Serializes this builder to API-compatible JSON data. + * + * @remarks + * This method runs validations on the data before serializing it. + * As such, it may throw an error if the data is invalid. + */ + toJSON() { + validateRequiredParameters3(this.name, this.description, this.options); + return { + type: ApplicationCommandOptionType11.SubcommandGroup, + name: this.name, + name_localizations: this.name_localizations, + description: this.description, + description_localizations: this.description_localizations, + options: this.options.map((option) => option.toJSON()) + }; + } +}; +__name(SlashCommandSubcommandGroupBuilder, "SlashCommandSubcommandGroupBuilder"); +SlashCommandSubcommandGroupBuilder = __decorateClass([ + mix5(SharedNameAndDescription) +], SlashCommandSubcommandGroupBuilder); +var SlashCommandSubcommandBuilder = class { + /** + * The name of this subcommand. + */ + name = void 0; + /** + * The description of this subcommand. + */ + description = void 0; + /** + * The options within this subcommand. + */ + options = []; + /** + * Serializes this builder to API-compatible JSON data. + * + * @remarks + * This method runs validations on the data before serializing it. + * As such, it may throw an error if the data is invalid. + */ + toJSON() { + validateRequiredParameters3(this.name, this.description, this.options); + return { + type: ApplicationCommandOptionType11.Subcommand, + name: this.name, + name_localizations: this.name_localizations, + description: this.description, + description_localizations: this.description_localizations, + options: this.options.map((option) => option.toJSON()) + }; + } +}; +__name(SlashCommandSubcommandBuilder, "SlashCommandSubcommandBuilder"); +SlashCommandSubcommandBuilder = __decorateClass([ + mix5(SharedNameAndDescription, SharedSlashCommandOptions) +], SlashCommandSubcommandBuilder); + +// src/interactions/slashCommands/mixins/SharedSubcommands.ts +var SharedSlashCommandSubcommands = class { + static { + __name(this, "SharedSlashCommandSubcommands"); + } + options = []; + /** + * Adds a new subcommand group to this command. + * + * @param input - A function that returns a subcommand group builder or an already built builder + */ + addSubcommandGroup(input) { + const { options } = this; + validateMaxOptionsLength(options); + const result = typeof input === "function" ? input(new SlashCommandSubcommandGroupBuilder()) : input; + assertReturnOfBuilder2(result, SlashCommandSubcommandGroupBuilder); + options.push(result); + return this; + } + /** + * Adds a new subcommand to this command. + * + * @param input - A function that returns a subcommand builder or an already built builder + */ + addSubcommand(input) { + const { options } = this; + validateMaxOptionsLength(options); + const result = typeof input === "function" ? input(new SlashCommandSubcommandBuilder()) : input; + assertReturnOfBuilder2(result, SlashCommandSubcommandBuilder); + options.push(result); + return this; + } +}; + +// src/interactions/slashCommands/SlashCommandBuilder.ts +var SlashCommandBuilder = class { + /** + * The name of this command. + */ + name = void 0; + /** + * The name localizations of this command. + */ + name_localizations; + /** + * The description of this command. + */ + description = void 0; + /** + * The description localizations of this command. + */ + description_localizations; + /** + * The options of this command. + */ + options = []; + /** + * The contexts for this command. + */ + contexts; + /** + * Whether this command is enabled by default when the application is added to a guild. + * + * @deprecated Use {@link SharedSlashCommand.setDefaultMemberPermissions} or {@link SharedSlashCommand.setDMPermission} instead. + */ + default_permission = void 0; + /** + * The set of permissions represented as a bit set for the command. + */ + default_member_permissions = void 0; + /** + * Indicates whether the command is available in direct messages with the application. + * + * @remarks + * By default, commands are visible. This property is only for global commands. + * @deprecated + * Use {@link SlashCommandBuilder.contexts} instead. + */ + dm_permission = void 0; + /** + * The integration types for this command. + */ + integration_types; + /** + * Whether this command is NSFW. + */ + nsfw = void 0; +}; +__name(SlashCommandBuilder, "SlashCommandBuilder"); +SlashCommandBuilder = __decorateClass([ + mix6(SharedSlashCommandOptions, SharedNameAndDescription, SharedSlashCommandSubcommands, SharedSlashCommand) +], SlashCommandBuilder); + +// src/interactions/contextMenuCommands/Assertions.ts +var Assertions_exports11 = {}; +__export(Assertions_exports11, { + contextsPredicate: () => contextsPredicate2, + integrationTypesPredicate: () => integrationTypesPredicate2, + validateDMPermission: () => validateDMPermission2, + validateDefaultMemberPermissions: () => validateDefaultMemberPermissions2, + validateDefaultPermission: () => validateDefaultPermission2, + validateName: () => validateName2, + validateRequiredParameters: () => validateRequiredParameters4, + validateType: () => validateType +}); +import { s as s17 } from "@sapphire/shapeshift"; +import { ApplicationCommandType as ApplicationCommandType2, ApplicationIntegrationType as ApplicationIntegrationType2, InteractionContextType as InteractionContextType2 } from "discord-api-types/v10"; +var namePredicate2 = s17.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(32).regex(/\S/).setValidationEnabled(isValidationEnabled); +var typePredicate = s17.union([s17.literal(ApplicationCommandType2.User), s17.literal(ApplicationCommandType2.Message)]).setValidationEnabled(isValidationEnabled); +var booleanPredicate3 = s17.boolean(); +function validateDefaultPermission2(value) { + booleanPredicate3.parse(value); +} +__name(validateDefaultPermission2, "validateDefaultPermission"); +function validateName2(name) { + namePredicate2.parse(name); +} +__name(validateName2, "validateName"); +function validateType(type) { + typePredicate.parse(type); +} +__name(validateType, "validateType"); +function validateRequiredParameters4(name, type) { + validateName2(name); + validateType(type); +} +__name(validateRequiredParameters4, "validateRequiredParameters"); +var dmPermissionPredicate2 = s17.boolean().nullish(); +function validateDMPermission2(value) { + dmPermissionPredicate2.parse(value); +} +__name(validateDMPermission2, "validateDMPermission"); +var memberPermissionPredicate2 = s17.union([ + s17.bigint().transform((value) => value.toString()), + s17.number().safeInt().transform((value) => value.toString()), + s17.string().regex(/^\d+$/) +]).nullish(); +function validateDefaultMemberPermissions2(permissions) { + return memberPermissionPredicate2.parse(permissions); +} +__name(validateDefaultMemberPermissions2, "validateDefaultMemberPermissions"); +var contextsPredicate2 = s17.array( + s17.nativeEnum(InteractionContextType2).setValidationEnabled(isValidationEnabled) +); +var integrationTypesPredicate2 = s17.array( + s17.nativeEnum(ApplicationIntegrationType2).setValidationEnabled(isValidationEnabled) +); + +// src/interactions/contextMenuCommands/ContextMenuCommandBuilder.ts +var ContextMenuCommandBuilder = class { + static { + __name(this, "ContextMenuCommandBuilder"); + } + /** + * The name of this command. + */ + name = void 0; + /** + * The name localizations of this command. + */ + name_localizations; + /** + * The type of this command. + */ + type = void 0; + /** + * The contexts for this command. + */ + contexts; + /** + * Whether this command is enabled by default when the application is added to a guild. + * + * @deprecated Use {@link ContextMenuCommandBuilder.setDefaultMemberPermissions} or {@link ContextMenuCommandBuilder.setDMPermission} instead. + */ + default_permission = void 0; + /** + * The set of permissions represented as a bit set for the command. + */ + default_member_permissions = void 0; + /** + * Indicates whether the command is available in direct messages with the application. + * + * @remarks + * By default, commands are visible. This property is only for global commands. + * @deprecated + * Use {@link ContextMenuCommandBuilder.contexts} instead. + */ + dm_permission = void 0; + /** + * The integration types for this command. + */ + integration_types; + /** + * Sets the contexts of this command. + * + * @param contexts - The contexts + */ + setContexts(...contexts) { + Reflect.set(this, "contexts", contextsPredicate2.parse(normalizeArray(contexts))); + return this; + } + /** + * Sets integration types of this command. + * + * @param integrationTypes - The integration types + */ + setIntegrationTypes(...integrationTypes) { + Reflect.set(this, "integration_types", integrationTypesPredicate2.parse(normalizeArray(integrationTypes))); + return this; + } + /** + * Sets the name of this command. + * + * @param name - The name to use + */ + setName(name) { + validateName2(name); + Reflect.set(this, "name", name); + return this; + } + /** + * Sets the type of this command. + * + * @param type - The type to use + */ + setType(type) { + validateType(type); + Reflect.set(this, "type", type); + return this; + } + /** + * Sets whether the command is enabled by default when the application is added to a guild. + * + * @remarks + * If set to `false`, you will have to later `PUT` the permissions for this command. + * @param value - Whether to enable this command by default + * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} + * @deprecated Use {@link ContextMenuCommandBuilder.setDefaultMemberPermissions} or {@link ContextMenuCommandBuilder.setDMPermission} instead. + */ + setDefaultPermission(value) { + validateDefaultPermission2(value); + Reflect.set(this, "default_permission", value); + return this; + } + /** + * Sets the default permissions a member should have in order to run this command. + * + * @remarks + * You can set this to `'0'` to disable the command by default. + * @param permissions - The permissions bit field to set + * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} + */ + setDefaultMemberPermissions(permissions) { + const permissionValue = validateDefaultMemberPermissions2(permissions); + Reflect.set(this, "default_member_permissions", permissionValue); + return this; + } + /** + * Sets if the command is available in direct messages with the application. + * + * @remarks + * By default, commands are visible. This method is only for global commands. + * @param enabled - Whether the command should be enabled in direct messages + * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions} + * @deprecated Use {@link ContextMenuCommandBuilder.setContexts} instead. + */ + setDMPermission(enabled) { + validateDMPermission2(enabled); + Reflect.set(this, "dm_permission", enabled); + return this; + } + /** + * Sets a name localization for this command. + * + * @param locale - The locale to set + * @param localizedName - The localized name for the given `locale` + */ + setNameLocalization(locale, localizedName) { + if (!this.name_localizations) { + Reflect.set(this, "name_localizations", {}); + } + const parsedLocale = validateLocale(locale); + if (localizedName === null) { + this.name_localizations[parsedLocale] = null; + return this; + } + validateName2(localizedName); + this.name_localizations[parsedLocale] = localizedName; + return this; + } + /** + * Sets the name localizations for this command. + * + * @param localizedNames - The object of localized names to set + */ + setNameLocalizations(localizedNames) { + if (localizedNames === null) { + Reflect.set(this, "name_localizations", null); + return this; + } + Reflect.set(this, "name_localizations", {}); + for (const args of Object.entries(localizedNames)) + this.setNameLocalization(...args); + return this; + } + /** + * Serializes this builder to API-compatible JSON data. + * + * @remarks + * This method runs validations on the data before serializing it. + * As such, it may throw an error if the data is invalid. + */ + toJSON() { + validateRequiredParameters4(this.name, this.type); + validateLocalizationMap(this.name_localizations); + return { ...this }; + } +}; + +// src/util/componentUtil.ts +function embedLength(data) { + return (data.title?.length ?? 0) + (data.description?.length ?? 0) + (data.fields?.reduce((prev, curr) => prev + curr.name.length + curr.value.length, 0) ?? 0) + (data.footer?.text.length ?? 0) + (data.author?.name.length ?? 0); +} +__name(embedLength, "embedLength"); + +// src/index.ts +var version = "1.14.1"; +export { + ActionRowBuilder, + ApplicationCommandNumericOptionMinMaxValueMixin, + ApplicationCommandOptionBase, + ApplicationCommandOptionChannelTypesMixin, + ApplicationCommandOptionWithAutocompleteMixin, + ApplicationCommandOptionWithChoicesMixin, + BaseSelectMenuBuilder, + ButtonBuilder, + ChannelSelectMenuBuilder, + Assertions_exports3 as CheckboxAssertions, + CheckboxBuilder, + CheckboxGroupBuilder, + CheckboxGroupOptionBuilder, + Assertions_exports2 as ComponentAssertions, + ComponentBuilder, + Assertions_exports8 as ComponentsV2Assertions, + ContainerBuilder, + Assertions_exports11 as ContextMenuCommandAssertions, + ContextMenuCommandBuilder, + Assertions_exports as EmbedAssertions, + EmbedBuilder, + FileBuilder, + Assertions_exports4 as FileUploadAssertions, + FileUploadBuilder, + Assertions_exports7 as LabelAssertions, + LabelBuilder, + MediaGalleryBuilder, + MediaGalleryItemBuilder, + MentionableSelectMenuBuilder, + Assertions_exports9 as ModalAssertions, + ModalBuilder, + RadioGroupBuilder, + RadioGroupOptionBuilder, + RoleSelectMenuBuilder, + SectionBuilder, + Assertions_exports6 as SelectMenuAssertions, + StringSelectMenuBuilder as SelectMenuBuilder, + StringSelectMenuOptionBuilder as SelectMenuOptionBuilder, + SeparatorBuilder, + SharedNameAndDescription, + SharedSlashCommand, + SharedSlashCommandOptions, + SharedSlashCommandSubcommands, + Assertions_exports10 as SlashCommandAssertions, + SlashCommandAttachmentOption, + SlashCommandBooleanOption, + SlashCommandBuilder, + SlashCommandChannelOption, + SlashCommandIntegerOption, + SlashCommandMentionableOption, + SlashCommandNumberOption, + SlashCommandRoleOption, + SlashCommandStringOption, + SlashCommandSubcommandBuilder, + SlashCommandSubcommandGroupBuilder, + SlashCommandUserOption, + StringSelectMenuBuilder, + StringSelectMenuOptionBuilder, + TextDisplayBuilder, + Assertions_exports5 as TextInputAssertions, + TextInputBuilder, + ThumbnailBuilder, + UserSelectMenuBuilder, + createComponentBuilder, + disableValidators, + embedLength, + enableValidators, + isValidationEnabled, + normalizeArray, + resolveBuilder, + version +}; +//# sourceMappingURL=index.mjs.map \ No newline at end of file diff --git a/node_modules/@discordjs/builders/dist/index.mjs.map b/node_modules/@discordjs/builders/dist/index.mjs.map new file mode 100644 index 0000000..97f63cc --- /dev/null +++ b/node_modules/@discordjs/builders/dist/index.mjs.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/messages/embed/Assertions.ts","../src/util/validation.ts","../src/util/normalizeArray.ts","../src/messages/embed/Embed.ts","../src/index.ts","../src/components/Assertions.ts","../src/components/selectMenu/StringSelectMenuOption.ts","../src/components/ActionRow.ts","../src/components/Component.ts","../src/components/Components.ts","../src/components/button/Button.ts","../src/components/checkbox/Checkbox.ts","../src/components/checkbox/Assertions.ts","../src/components/checkbox/CheckboxGroup.ts","../src/components/checkbox/CheckboxGroupOption.ts","../src/components/checkbox/RadioGroup.ts","../src/components/checkbox/RadioGroupOption.ts","../src/components/fileUpload/FileUpload.ts","../src/components/fileUpload/Assertions.ts","../src/components/label/Label.ts","../src/components/selectMenu/ChannelSelectMenu.ts","../src/components/textInput/Assertions.ts","../src/components/selectMenu/BaseSelectMenu.ts","../src/components/selectMenu/MentionableSelectMenu.ts","../src/components/selectMenu/RoleSelectMenu.ts","../src/components/selectMenu/StringSelectMenu.ts","../src/components/selectMenu/Assertions.ts","../src/components/selectMenu/UserSelectMenu.ts","../src/components/textInput/TextInput.ts","../src/components/label/Assertions.ts","../src/components/v2/Container.ts","../src/components/v2/Assertions.ts","../src/components/v2/Thumbnail.ts","../src/components/v2/File.ts","../src/components/v2/Separator.ts","../src/components/v2/TextDisplay.ts","../src/components/v2/MediaGallery.ts","../src/components/v2/MediaGalleryItem.ts","../src/components/v2/Section.ts","../src/interactions/modals/Modal.ts","../src/interactions/modals/Assertions.ts","../src/interactions/slashCommands/Assertions.ts","../src/interactions/slashCommands/SlashCommandBuilder.ts","../src/interactions/slashCommands/mixins/NameAndDescription.ts","../src/interactions/slashCommands/mixins/SharedSlashCommand.ts","../src/interactions/slashCommands/options/attachment.ts","../src/interactions/slashCommands/mixins/ApplicationCommandOptionBase.ts","../src/interactions/slashCommands/options/boolean.ts","../src/interactions/slashCommands/options/channel.ts","../src/interactions/slashCommands/mixins/ApplicationCommandOptionChannelTypesMixin.ts","../src/interactions/slashCommands/options/integer.ts","../src/interactions/slashCommands/mixins/ApplicationCommandNumericOptionMinMaxValueMixin.ts","../src/interactions/slashCommands/mixins/ApplicationCommandOptionWithAutocompleteMixin.ts","../src/interactions/slashCommands/mixins/ApplicationCommandOptionWithChoicesMixin.ts","../src/interactions/slashCommands/options/mentionable.ts","../src/interactions/slashCommands/options/number.ts","../src/interactions/slashCommands/options/role.ts","../src/interactions/slashCommands/options/string.ts","../src/interactions/slashCommands/options/user.ts","../src/interactions/slashCommands/mixins/SharedSlashCommandOptions.ts","../src/interactions/slashCommands/SlashCommandSubcommands.ts","../src/interactions/slashCommands/mixins/SharedSubcommands.ts","../src/interactions/contextMenuCommands/Assertions.ts","../src/interactions/contextMenuCommands/ContextMenuCommandBuilder.ts","../src/util/componentUtil.ts"],"sourcesContent":["import { s } from '@sapphire/shapeshift';\nimport type { APIEmbedField } from 'discord-api-types/v10';\nimport { isValidationEnabled } from '../../util/validation.js';\n\nexport const fieldNamePredicate = s.string().lengthLessThanOrEqual(256).setValidationEnabled(isValidationEnabled);\n\nexport const fieldValuePredicate = s.string().lengthLessThanOrEqual(1_024).setValidationEnabled(isValidationEnabled);\n\nexport const fieldInlinePredicate = s.boolean().optional();\n\nexport const embedFieldPredicate = s\n\t.object({\n\t\tname: fieldNamePredicate,\n\t\tvalue: fieldValuePredicate,\n\t\tinline: fieldInlinePredicate,\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const embedFieldsArrayPredicate = embedFieldPredicate.array().setValidationEnabled(isValidationEnabled);\n\nexport const fieldLengthPredicate = s.number().lessThanOrEqual(25).setValidationEnabled(isValidationEnabled);\n\nexport function validateFieldLength(amountAdding: number, fields?: APIEmbedField[]): void {\n\tfieldLengthPredicate.parse((fields?.length ?? 0) + amountAdding);\n}\n\nexport const authorNamePredicate = fieldNamePredicate\n\t.lengthGreaterThanOrEqual(1)\n\t.nullable()\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const imageURLPredicate = s\n\t.string()\n\t.url({\n\t\tallowedProtocols: ['http:', 'https:', 'attachment:'],\n\t})\n\t.nullish()\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const urlPredicate = s\n\t.string()\n\t.url({\n\t\tallowedProtocols: ['http:', 'https:'],\n\t})\n\t.nullish()\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const embedAuthorPredicate = s\n\t.object({\n\t\tname: authorNamePredicate,\n\t\ticonURL: imageURLPredicate,\n\t\turl: urlPredicate,\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const RGBPredicate = s\n\t.number()\n\t.int()\n\t.greaterThanOrEqual(0)\n\t.lessThanOrEqual(255)\n\t.setValidationEnabled(isValidationEnabled);\nexport const colorPredicate = s\n\t.number()\n\t.int()\n\t.greaterThanOrEqual(0)\n\t.lessThanOrEqual(0xffffff)\n\t.or(s.tuple([RGBPredicate, RGBPredicate, RGBPredicate]))\n\t.nullable()\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const descriptionPredicate = s\n\t.string()\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(4_096)\n\t.nullable()\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const footerTextPredicate = s\n\t.string()\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(2_048)\n\t.nullable()\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const embedFooterPredicate = s\n\t.object({\n\t\ttext: footerTextPredicate,\n\t\ticonURL: imageURLPredicate,\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const timestampPredicate = s.union([s.number(), s.date()]).nullable().setValidationEnabled(isValidationEnabled);\n\nexport const titlePredicate = fieldNamePredicate\n\t.lengthGreaterThanOrEqual(1)\n\t.nullable()\n\t.setValidationEnabled(isValidationEnabled);\n","let validate = true;\n\n/**\n * Enables validators.\n *\n * @returns Whether validation is occurring.\n */\nexport function enableValidators() {\n\treturn (validate = true);\n}\n\n/**\n * Disables validators.\n *\n * @returns Whether validation is occurring.\n */\nexport function disableValidators() {\n\treturn (validate = false);\n}\n\n/**\n * Checks whether validation is occurring.\n */\nexport function isValidationEnabled() {\n\treturn validate;\n}\n","/**\n * Normalizes data that is a rest parameter or an array into an array with a depth of 1.\n *\n * @typeParam ItemType - The data that must satisfy {@link RestOrArray}.\n * @param arr - The (possibly variadic) data to normalize\n */\nexport function normalizeArray(arr: RestOrArray): ItemType[] {\n\tif (Array.isArray(arr[0])) return [...arr[0]];\n\treturn arr as ItemType[];\n}\n\n/**\n * Represents data that may be an array or came from a rest parameter.\n *\n * @remarks\n * This type is used throughout builders to ensure both an array and variadic arguments\n * may be used. It is normalized with {@link normalizeArray}.\n */\nexport type RestOrArray = Type[] | [Type[]];\n","import type { APIEmbed, APIEmbedAuthor, APIEmbedField, APIEmbedFooter, APIEmbedImage } from 'discord-api-types/v10';\nimport { normalizeArray, type RestOrArray } from '../../util/normalizeArray.js';\nimport {\n\tcolorPredicate,\n\tdescriptionPredicate,\n\tembedAuthorPredicate,\n\tembedFieldsArrayPredicate,\n\tembedFooterPredicate,\n\timageURLPredicate,\n\ttimestampPredicate,\n\ttitlePredicate,\n\turlPredicate,\n\tvalidateFieldLength,\n} from './Assertions.js';\n\n/**\n * A tuple satisfying the RGB color model.\n *\n * @see {@link https://developer.mozilla.org/docs/Glossary/RGB}\n */\nexport type RGBTuple = [red: number, green: number, blue: number];\n\n/**\n * The base icon data typically used in payloads.\n */\nexport interface IconData {\n\t/**\n\t * The URL of the icon.\n\t */\n\ticonURL?: string;\n\t/**\n\t * The proxy URL of the icon.\n\t */\n\tproxyIconURL?: string;\n}\n\n/**\n * Represents the author data of an embed.\n */\nexport interface EmbedAuthorData extends IconData, Omit {}\n\n/**\n * Represents the author options of an embed.\n */\nexport interface EmbedAuthorOptions extends Omit {}\n\n/**\n * Represents the footer data of an embed.\n */\nexport interface EmbedFooterData extends IconData, Omit {}\n\n/**\n * Represents the footer options of an embed.\n */\nexport interface EmbedFooterOptions extends Omit {}\n\n/**\n * Represents the image data of an embed.\n */\nexport interface EmbedImageData extends Omit {\n\t/**\n\t * The proxy URL for the image.\n\t */\n\tproxyURL?: string;\n}\n\n/**\n * A builder that creates API-compatible JSON data for embeds.\n */\nexport class EmbedBuilder {\n\t/**\n\t * The API data associated with this embed.\n\t */\n\tpublic readonly data: APIEmbed;\n\n\t/**\n\t * Creates a new embed from API data.\n\t *\n\t * @param data - The API data to create this embed with\n\t */\n\tpublic constructor(data: APIEmbed = {}) {\n\t\tthis.data = { ...data };\n\t\tif (data.timestamp) this.data.timestamp = new Date(data.timestamp).toISOString();\n\t}\n\n\t/**\n\t * Appends fields to the embed.\n\t *\n\t * @remarks\n\t * This method accepts either an array of fields or a variable number of field parameters.\n\t * The maximum amount of fields that can be added is 25.\n\t * @example\n\t * Using an array:\n\t * ```ts\n\t * const fields: APIEmbedField[] = ...;\n\t * const embed = new EmbedBuilder()\n\t * \t.addFields(fields);\n\t * ```\n\t * @example\n\t * Using rest parameters (variadic):\n\t * ```ts\n\t * const embed = new EmbedBuilder()\n\t * \t.addFields(\n\t * \t\t{ name: 'Field 1', value: 'Value 1' },\n\t * \t\t{ name: 'Field 2', value: 'Value 2' },\n\t * \t);\n\t * ```\n\t * @param fields - The fields to add\n\t */\n\tpublic addFields(...fields: RestOrArray): this {\n\t\tconst normalizedFields = normalizeArray(fields);\n\t\t// Ensure adding these fields won't exceed the 25 field limit\n\t\tvalidateFieldLength(normalizedFields.length, this.data.fields);\n\n\t\t// Data assertions\n\t\tembedFieldsArrayPredicate.parse(normalizedFields);\n\n\t\tif (this.data.fields) this.data.fields.push(...normalizedFields);\n\t\telse this.data.fields = normalizedFields;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Removes, replaces, or inserts fields for this embed.\n\t *\n\t * @remarks\n\t * This method behaves similarly\n\t * to {@link https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/splice | Array.prototype.splice()}.\n\t * The maximum amount of fields that can be added is 25.\n\t *\n\t * It's useful for modifying and adjusting order of the already-existing fields of an embed.\n\t * @example\n\t * Remove the first field:\n\t * ```ts\n\t * embed.spliceFields(0, 1);\n\t * ```\n\t * @example\n\t * Remove the first n fields:\n\t * ```ts\n\t * const n = 4;\n\t * embed.spliceFields(0, n);\n\t * ```\n\t * @example\n\t * Remove the last field:\n\t * ```ts\n\t * embed.spliceFields(-1, 1);\n\t * ```\n\t * @param index - The index to start at\n\t * @param deleteCount - The number of fields to remove\n\t * @param fields - The replacing field objects\n\t */\n\tpublic spliceFields(index: number, deleteCount: number, ...fields: APIEmbedField[]): this {\n\t\t// Ensure adding these fields won't exceed the 25 field limit\n\t\tvalidateFieldLength(fields.length - deleteCount, this.data.fields);\n\n\t\t// Data assertions\n\t\tembedFieldsArrayPredicate.parse(fields);\n\t\tif (this.data.fields) this.data.fields.splice(index, deleteCount, ...fields);\n\t\telse this.data.fields = fields;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the fields for this embed.\n\t *\n\t * @remarks\n\t * This method is an alias for {@link EmbedBuilder.spliceFields}. More specifically,\n\t * it splices the entire array of fields, replacing them with the provided fields.\n\t *\n\t * You can set a maximum of 25 fields.\n\t * @param fields - The fields to set\n\t */\n\tpublic setFields(...fields: RestOrArray): this {\n\t\tthis.spliceFields(0, this.data.fields?.length ?? 0, ...normalizeArray(fields));\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the author of this embed.\n\t *\n\t * @param options - The options to use\n\t */\n\n\tpublic setAuthor(options: EmbedAuthorOptions | null): this {\n\t\tif (options === null) {\n\t\t\tthis.data.author = undefined;\n\t\t\treturn this;\n\t\t}\n\n\t\t// Data assertions\n\t\tembedAuthorPredicate.parse(options);\n\n\t\tthis.data.author = { name: options.name, url: options.url, icon_url: options.iconURL };\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the color of this embed.\n\t *\n\t * @param color - The color to use\n\t */\n\tpublic setColor(color: RGBTuple | number | null): this {\n\t\t// Data assertions\n\t\tcolorPredicate.parse(color);\n\n\t\tif (Array.isArray(color)) {\n\t\t\tconst [red, green, blue] = color;\n\t\t\tthis.data.color = (red << 16) + (green << 8) + blue;\n\t\t\treturn this;\n\t\t}\n\n\t\tthis.data.color = color ?? undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the description of this embed.\n\t *\n\t * @param description - The description to use\n\t */\n\tpublic setDescription(description: string | null): this {\n\t\t// Data assertions\n\t\tdescriptionPredicate.parse(description);\n\n\t\tthis.data.description = description ?? undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the footer of this embed.\n\t *\n\t * @param options - The footer to use\n\t */\n\tpublic setFooter(options: EmbedFooterOptions | null): this {\n\t\tif (options === null) {\n\t\t\tthis.data.footer = undefined;\n\t\t\treturn this;\n\t\t}\n\n\t\t// Data assertions\n\t\tembedFooterPredicate.parse(options);\n\n\t\tthis.data.footer = { text: options.text, icon_url: options.iconURL };\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the image of this embed.\n\t *\n\t * @param url - The image URL to use\n\t */\n\tpublic setImage(url: string | null): this {\n\t\t// Data assertions\n\t\timageURLPredicate.parse(url);\n\n\t\tthis.data.image = url ? { url } : undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the thumbnail of this embed.\n\t *\n\t * @param url - The thumbnail URL to use\n\t */\n\tpublic setThumbnail(url: string | null): this {\n\t\t// Data assertions\n\t\timageURLPredicate.parse(url);\n\n\t\tthis.data.thumbnail = url ? { url } : undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the timestamp of this embed.\n\t *\n\t * @param timestamp - The timestamp or date to use\n\t */\n\tpublic setTimestamp(timestamp: Date | number | null = Date.now()): this {\n\t\t// Data assertions\n\t\ttimestampPredicate.parse(timestamp);\n\n\t\tthis.data.timestamp = timestamp ? new Date(timestamp).toISOString() : undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the title for this embed.\n\t *\n\t * @param title - The title to use\n\t */\n\tpublic setTitle(title: string | null): this {\n\t\t// Data assertions\n\t\ttitlePredicate.parse(title);\n\n\t\tthis.data.title = title ?? undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the URL of this embed.\n\t *\n\t * @param url - The URL to use\n\t */\n\tpublic setURL(url: string | null): this {\n\t\t// Data assertions\n\t\turlPredicate.parse(url);\n\n\t\tthis.data.url = url ?? undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Serializes this builder to API-compatible JSON data.\n\t *\n\t * @remarks\n\t * This method runs validations on the data before serializing it.\n\t * As such, it may throw an error if the data is invalid.\n\t */\n\tpublic toJSON(): APIEmbed {\n\t\treturn { ...this.data };\n\t}\n}\n","export * as EmbedAssertions from './messages/embed/Assertions.js';\nexport * from './messages/embed/Embed.js';\n// TODO: Consider removing this dep in the next major version\nexport * from '@discordjs/formatters';\n\nexport * as ComponentAssertions from './components/Assertions.js';\nexport * from './components/ActionRow.js';\nexport * from './components/button/Button.js';\nexport * from './components/Component.js';\nexport * from './components/Components.js';\nexport * from './components/textInput/TextInput.js';\nexport * as TextInputAssertions from './components/textInput/Assertions.js';\nexport * from './interactions/modals/Modal.js';\nexport * as ModalAssertions from './interactions/modals/Assertions.js';\n\nexport * from './components/selectMenu/BaseSelectMenu.js';\nexport * from './components/selectMenu/ChannelSelectMenu.js';\nexport * from './components/selectMenu/MentionableSelectMenu.js';\nexport * from './components/selectMenu/RoleSelectMenu.js';\nexport * from './components/selectMenu/StringSelectMenu.js';\n// TODO: Remove those aliases in v2\nexport {\n\t/**\n\t * @deprecated Will be removed in the next major version, use {@link StringSelectMenuBuilder} instead.\n\t */\n\tStringSelectMenuBuilder as SelectMenuBuilder,\n} from './components/selectMenu/StringSelectMenu.js';\nexport {\n\t/**\n\t * @deprecated Will be removed in the next major version, use {@link StringSelectMenuOptionBuilder} instead.\n\t */\n\tStringSelectMenuOptionBuilder as SelectMenuOptionBuilder,\n} from './components/selectMenu/StringSelectMenuOption.js';\nexport * as SelectMenuAssertions from './components/selectMenu/Assertions.js';\nexport * from './components/selectMenu/StringSelectMenuOption.js';\nexport * from './components/selectMenu/UserSelectMenu.js';\n\nexport * from './components/fileUpload/FileUpload.js';\nexport * as FileUploadAssertions from './components/fileUpload/Assertions.js';\n\nexport * from './components/label/Label.js';\nexport * as LabelAssertions from './components/label/Assertions.js';\n\nexport * as ComponentsV2Assertions from './components/v2/Assertions.js';\nexport * from './components/v2/Container.js';\nexport * from './components/v2/File.js';\nexport * from './components/v2/MediaGallery.js';\nexport * from './components/v2/MediaGalleryItem.js';\nexport * from './components/v2/Section.js';\nexport * from './components/v2/Separator.js';\nexport * from './components/v2/TextDisplay.js';\nexport * from './components/v2/Thumbnail.js';\n\nexport * from './components/checkbox/Checkbox.js';\nexport * from './components/checkbox/CheckboxGroup.js';\nexport * from './components/checkbox/CheckboxGroupOption.js';\nexport * from './components/checkbox/RadioGroup.js';\nexport * from './components/checkbox/RadioGroupOption.js';\nexport * as CheckboxAssertions from './components/checkbox/Assertions.js';\n\nexport * as SlashCommandAssertions from './interactions/slashCommands/Assertions.js';\nexport * from './interactions/slashCommands/SlashCommandBuilder.js';\nexport * from './interactions/slashCommands/SlashCommandSubcommands.js';\nexport * from './interactions/slashCommands/options/boolean.js';\nexport * from './interactions/slashCommands/options/channel.js';\nexport * from './interactions/slashCommands/options/integer.js';\nexport * from './interactions/slashCommands/options/mentionable.js';\nexport * from './interactions/slashCommands/options/number.js';\nexport * from './interactions/slashCommands/options/role.js';\nexport * from './interactions/slashCommands/options/attachment.js';\nexport * from './interactions/slashCommands/options/string.js';\nexport * from './interactions/slashCommands/options/user.js';\nexport * from './interactions/slashCommands/mixins/ApplicationCommandNumericOptionMinMaxValueMixin.js';\nexport * from './interactions/slashCommands/mixins/ApplicationCommandOptionBase.js';\nexport * from './interactions/slashCommands/mixins/ApplicationCommandOptionChannelTypesMixin.js';\nexport * from './interactions/slashCommands/mixins/ApplicationCommandOptionWithAutocompleteMixin.js';\nexport * from './interactions/slashCommands/mixins/ApplicationCommandOptionWithChoicesMixin.js';\nexport * from './interactions/slashCommands/mixins/NameAndDescription.js';\nexport * from './interactions/slashCommands/mixins/SharedSlashCommandOptions.js';\nexport * from './interactions/slashCommands/mixins/SharedSubcommands.js';\nexport * from './interactions/slashCommands/mixins/SharedSlashCommand.js';\n\nexport * as ContextMenuCommandAssertions from './interactions/contextMenuCommands/Assertions.js';\nexport * from './interactions/contextMenuCommands/ContextMenuCommandBuilder.js';\n\nexport * from './util/componentUtil.js';\nexport * from './util/normalizeArray.js';\nexport * from './util/validation.js';\n\n/**\n * The {@link https://github.com/discordjs/discord.js/blob/main/packages/builders#readme | @discordjs/builders} version\n * that you are currently using.\n *\n * @privateRemarks This needs to explicitly be `string` so it is not typed as a \"const string\" that gets injected by esbuild.\n */\nexport const version = '1.14.1' as string;\n","import { s } from '@sapphire/shapeshift';\nimport { ButtonStyle, ChannelType, type APIMessageComponentEmoji } from 'discord-api-types/v10';\nimport { isValidationEnabled } from '../util/validation.js';\nimport { StringSelectMenuOptionBuilder } from './selectMenu/StringSelectMenuOption.js';\n\nexport const idValidator = s\n\t.number()\n\t.safeInt()\n\t.greaterThanOrEqual(1)\n\t.lessThan(4_294_967_296) // 2^32 - 1\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const customIdValidator = s\n\t.string()\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(100)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const emojiValidator = s\n\t.object({\n\t\tid: s.string(),\n\t\tname: s.string(),\n\t\tanimated: s.boolean(),\n\t})\n\t.partial()\n\t.strict()\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const disabledValidator = s.boolean();\n\nexport const buttonLabelValidator = s\n\t.string()\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(80)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const buttonStyleValidator = s.nativeEnum(ButtonStyle);\n\nexport const placeholderValidator = s.string().lengthLessThanOrEqual(150).setValidationEnabled(isValidationEnabled);\nexport const minMaxValidator = s\n\t.number()\n\t.int()\n\t.greaterThanOrEqual(0)\n\t.lessThanOrEqual(25)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const labelValueDescriptionValidator = s\n\t.string()\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(100)\n\t.setValidationEnabled(isValidationEnabled);\n\n/**\n * @deprecated Replaced with selectMenuStringOptionPredicate.\n */\nexport const jsonOptionValidator = s\n\t.object({\n\t\tlabel: labelValueDescriptionValidator,\n\t\tvalue: labelValueDescriptionValidator,\n\t\tdescription: labelValueDescriptionValidator.optional(),\n\t\temoji: emojiValidator.optional(),\n\t\tdefault: s.boolean().optional(),\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const optionValidator = s.instance(StringSelectMenuOptionBuilder).setValidationEnabled(isValidationEnabled);\n\nexport const optionsValidator = optionValidator\n\t.array()\n\t.lengthGreaterThanOrEqual(0)\n\t.setValidationEnabled(isValidationEnabled);\nexport const optionsLengthValidator = s\n\t.number()\n\t.int()\n\t.greaterThanOrEqual(0)\n\t.lessThanOrEqual(25)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport function validateRequiredSelectMenuParameters(options: StringSelectMenuOptionBuilder[], customId?: string) {\n\tcustomIdValidator.parse(customId);\n\toptionsValidator.parse(options);\n}\n\nexport const defaultValidator = s.boolean();\n\nexport function validateRequiredSelectMenuOptionParameters(label?: string, value?: string) {\n\tlabelValueDescriptionValidator.parse(label);\n\tlabelValueDescriptionValidator.parse(value);\n}\n\nexport const channelTypesValidator = s.nativeEnum(ChannelType).array().setValidationEnabled(isValidationEnabled);\n\nexport const urlValidator = s\n\t.string()\n\t.url({\n\t\tallowedProtocols: ['http:', 'https:', 'discord:'],\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n\nexport function validateRequiredButtonParameters(\n\tstyle?: ButtonStyle,\n\tlabel?: string,\n\temoji?: APIMessageComponentEmoji,\n\tcustomId?: string,\n\tskuId?: string,\n\turl?: string,\n) {\n\tif (style === ButtonStyle.Premium) {\n\t\tif (!skuId) {\n\t\t\tthrow new RangeError('Premium buttons must have an SKU id.');\n\t\t}\n\n\t\tif (customId || label || url || emoji) {\n\t\t\tthrow new RangeError('Premium buttons cannot have a custom id, label, URL, or emoji.');\n\t\t}\n\t} else {\n\t\tif (skuId) {\n\t\t\tthrow new RangeError('Non-premium buttons must not have an SKU id.');\n\t\t}\n\n\t\tif (url && customId) {\n\t\t\tthrow new RangeError('URL and custom id are mutually exclusive.');\n\t\t}\n\n\t\tif (!label && !emoji) {\n\t\t\tthrow new RangeError('Non-premium buttons must have a label and/or an emoji.');\n\t\t}\n\n\t\tif (style === ButtonStyle.Link) {\n\t\t\tif (!url) {\n\t\t\t\tthrow new RangeError('Link buttons must have a URL.');\n\t\t\t}\n\t\t} else if (url) {\n\t\t\tthrow new RangeError('Non-premium and non-link buttons cannot have a URL.');\n\t\t}\n\t}\n}\n","import type { JSONEncodable } from '@discordjs/util';\nimport type { APIMessageComponentEmoji, APISelectMenuOption } from 'discord-api-types/v10';\nimport {\n\tdefaultValidator,\n\temojiValidator,\n\tlabelValueDescriptionValidator,\n\tvalidateRequiredSelectMenuOptionParameters,\n} from '../Assertions.js';\n\n/**\n * A builder that creates API-compatible JSON data for string select menu options.\n */\nexport class StringSelectMenuOptionBuilder implements JSONEncodable {\n\t/**\n\t * Creates a new string select menu option from API data.\n\t *\n\t * @param data - The API data to create this string select menu option with\n\t * @example\n\t * Creating a string select menu option from an API data object:\n\t * ```ts\n\t * const selectMenuOption = new SelectMenuOptionBuilder({\n\t * \tlabel: 'catchy label',\n\t * \tvalue: '1',\n\t * });\n\t * ```\n\t * @example\n\t * Creating a string select menu option using setters and API data:\n\t * ```ts\n\t * const selectMenuOption = new SelectMenuOptionBuilder({\n\t * \tdefault: true,\n\t * \tvalue: '1',\n\t * })\n\t * \t.setLabel('woah');\n\t * ```\n\t */\n\tpublic constructor(public data: Partial = {}) {}\n\n\t/**\n\t * Sets the label for this option.\n\t *\n\t * @param label - The label to use\n\t */\n\tpublic setLabel(label: string) {\n\t\tthis.data.label = labelValueDescriptionValidator.parse(label);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the value for this option.\n\t *\n\t * @param value - The value to use\n\t */\n\tpublic setValue(value: string) {\n\t\tthis.data.value = labelValueDescriptionValidator.parse(value);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the description for this option.\n\t *\n\t * @param description - The description to use\n\t */\n\tpublic setDescription(description: string) {\n\t\tthis.data.description = labelValueDescriptionValidator.parse(description);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether this option is selected by default.\n\t *\n\t * @param isDefault - Whether this option is selected by default\n\t */\n\tpublic setDefault(isDefault = true) {\n\t\tthis.data.default = defaultValidator.parse(isDefault);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the emoji to display for this option.\n\t *\n\t * @param emoji - The emoji to use\n\t */\n\tpublic setEmoji(emoji: APIMessageComponentEmoji) {\n\t\tthis.data.emoji = emojiValidator.parse(emoji);\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc BaseSelectMenuBuilder.toJSON}\n\t */\n\tpublic toJSON(): APISelectMenuOption {\n\t\tvalidateRequiredSelectMenuOptionParameters(this.data.label, this.data.value);\n\n\t\treturn {\n\t\t\t...this.data,\n\t\t} as APISelectMenuOption;\n\t}\n}\n","/* eslint-disable jsdoc/check-param-names */\n\nimport {\n\ttype APIActionRowComponent,\n\tComponentType,\n\ttype APIComponentInMessageActionRow,\n\ttype APIComponentInModalActionRow,\n\ttype APIComponentInActionRow,\n} from 'discord-api-types/v10';\nimport { normalizeArray, type RestOrArray } from '../util/normalizeArray.js';\nimport { ComponentBuilder } from './Component.js';\nimport { createComponentBuilder } from './Components.js';\nimport type { ButtonBuilder } from './button/Button.js';\nimport type { ChannelSelectMenuBuilder } from './selectMenu/ChannelSelectMenu.js';\nimport type { MentionableSelectMenuBuilder } from './selectMenu/MentionableSelectMenu.js';\nimport type { RoleSelectMenuBuilder } from './selectMenu/RoleSelectMenu.js';\nimport type { StringSelectMenuBuilder } from './selectMenu/StringSelectMenu.js';\nimport type { UserSelectMenuBuilder } from './selectMenu/UserSelectMenu.js';\nimport type { TextInputBuilder } from './textInput/TextInput.js';\n\n/**\n * The builders that may be used for modals.\n */\nexport type ModalComponentBuilder = ActionRowBuilder | ModalActionRowComponentBuilder;\n\n/**\n * The builders that may be used within an action row for messages.\n */\nexport type MessageActionRowComponentBuilder =\n\t| ButtonBuilder\n\t| ChannelSelectMenuBuilder\n\t| MentionableSelectMenuBuilder\n\t| RoleSelectMenuBuilder\n\t| StringSelectMenuBuilder\n\t| UserSelectMenuBuilder;\n\n/**\n * The builders that may be used within an action row for modals.\n */\nexport type ModalActionRowComponentBuilder = TextInputBuilder;\n\n/**\n * Any builder.\n */\nexport type AnyComponentBuilder = MessageActionRowComponentBuilder | ModalActionRowComponentBuilder;\n\n/**\n * A builder that creates API-compatible JSON data for action rows.\n *\n * @typeParam ComponentType - The types of components this action row holds\n */\nexport class ActionRowBuilder extends ComponentBuilder<\n\tAPIActionRowComponent\n> {\n\t/**\n\t * The components within this action row.\n\t */\n\tpublic readonly components: ComponentType[];\n\n\t/**\n\t * Creates a new action row from API data.\n\t *\n\t * @param data - The API data to create this action row with\n\t * @example\n\t * Creating an action row from an API data object:\n\t * ```ts\n\t * const actionRow = new ActionRowBuilder({\n\t * \tcomponents: [\n\t * \t\t{\n\t * \t\t\tcustom_id: \"custom id\",\n\t * \t\t\tlabel: \"Type something\",\n\t * \t\t\tstyle: TextInputStyle.Short,\n\t * \t\t\ttype: ComponentType.TextInput,\n\t * \t\t},\n\t * \t],\n\t * });\n\t * ```\n\t * @example\n\t * Creating an action row using setters and API data:\n\t * ```ts\n\t * const actionRow = new ActionRowBuilder({\n\t * \tcomponents: [\n\t * \t\t{\n\t * \t\t\tcustom_id: \"custom id\",\n\t * \t\t\tlabel: \"Click me\",\n\t * \t\t\tstyle: ButtonStyle.Primary,\n\t * \t\t\ttype: ComponentType.Button,\n\t * \t\t},\n\t * \t],\n\t * })\n\t * \t.addComponents(button2, button3);\n\t * ```\n\t */\n\tpublic constructor({ components, ...data }: Partial> = {}) {\n\t\tsuper({ type: ComponentType.ActionRow, ...data });\n\t\tthis.components = (components?.map((component) => createComponentBuilder(component)) ?? []) as ComponentType[];\n\t}\n\n\t/**\n\t * Adds components to this action row.\n\t *\n\t * @param components - The components to add\n\t */\n\tpublic addComponents(...components: RestOrArray) {\n\t\tthis.components.push(...normalizeArray(components));\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets components for this action row.\n\t *\n\t * @param components - The components to set\n\t */\n\tpublic setComponents(...components: RestOrArray) {\n\t\tthis.components.splice(0, this.components.length, ...normalizeArray(components));\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic toJSON(): APIActionRowComponent> {\n\t\treturn {\n\t\t\t...this.data,\n\t\t\tcomponents: this.components.map((component) => component.toJSON()),\n\t\t} as APIActionRowComponent>;\n\t}\n}\n","import type { JSONEncodable } from '@discordjs/util';\nimport type {\n\tAPIActionRowComponent,\n\tAPIComponentInActionRow,\n\tAPIBaseComponent,\n\tComponentType,\n\tAPIMessageComponent,\n\tAPIModalComponent,\n} from 'discord-api-types/v10';\nimport { idValidator } from './Assertions';\n\n/**\n * Any action row component data represented as an object.\n */\nexport type AnyAPIActionRowComponent =\n\t| APIActionRowComponent\n\t| APIComponentInActionRow\n\t| APIMessageComponent\n\t| APIModalComponent;\n\n/**\n * The base component builder that contains common symbols for all sorts of components.\n *\n * @typeParam DataType - The type of internal API data that is stored within the component\n */\nexport abstract class ComponentBuilder<\n\tDataType extends Partial> = APIBaseComponent,\n> implements JSONEncodable {\n\t/**\n\t * The API data associated with this component.\n\t */\n\tpublic readonly data: Partial;\n\n\t/**\n\t * Serializes this builder to API-compatible JSON data.\n\t *\n\t * @remarks\n\t * This method runs validations on the data before serializing it.\n\t * As such, it may throw an error if the data is invalid.\n\t */\n\tpublic abstract toJSON(): AnyAPIActionRowComponent;\n\n\t/**\n\t * Constructs a new kind of component.\n\t *\n\t * @param data - The data to construct a component out of\n\t */\n\tpublic constructor(data: Partial) {\n\t\tthis.data = data;\n\t}\n\n\t/**\n\t * Sets the id (not the custom id) for this component.\n\t *\n\t * @param id - The id for this component\n\t */\n\tpublic setId(id: number) {\n\t\tthis.data.id = idValidator.parse(id);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Clears the id of this component, defaulting to a default incremented id.\n\t */\n\tpublic clearId() {\n\t\tthis.data.id = undefined;\n\t\treturn this;\n\t}\n}\n","import type { JSONEncodable } from '@discordjs/util';\nimport { ComponentType, type APIMessageComponent, type APIModalComponent } from 'discord-api-types/v10';\nimport {\n\tActionRowBuilder,\n\ttype MessageActionRowComponentBuilder,\n\ttype AnyComponentBuilder,\n\ttype ModalComponentBuilder,\n} from './ActionRow.js';\nimport { ComponentBuilder } from './Component.js';\nimport { ButtonBuilder } from './button/Button.js';\nimport { CheckboxBuilder } from './checkbox/Checkbox.js';\nimport { CheckboxGroupBuilder } from './checkbox/CheckboxGroup.js';\nimport { RadioGroupBuilder } from './checkbox/RadioGroup.js';\nimport { FileUploadBuilder } from './fileUpload/FileUpload.js';\nimport { LabelBuilder } from './label/Label.js';\nimport { ChannelSelectMenuBuilder } from './selectMenu/ChannelSelectMenu.js';\nimport { MentionableSelectMenuBuilder } from './selectMenu/MentionableSelectMenu.js';\nimport { RoleSelectMenuBuilder } from './selectMenu/RoleSelectMenu.js';\nimport { StringSelectMenuBuilder } from './selectMenu/StringSelectMenu.js';\nimport { UserSelectMenuBuilder } from './selectMenu/UserSelectMenu.js';\nimport { TextInputBuilder } from './textInput/TextInput.js';\nimport { ContainerBuilder } from './v2/Container.js';\nimport { FileBuilder } from './v2/File.js';\nimport { MediaGalleryBuilder } from './v2/MediaGallery.js';\nimport { SectionBuilder } from './v2/Section.js';\nimport { SeparatorBuilder } from './v2/Separator.js';\nimport { TextDisplayBuilder } from './v2/TextDisplay.js';\nimport { ThumbnailBuilder } from './v2/Thumbnail.js';\n\n/**\n * The builders that may be used for messages.\n */\nexport type MessageComponentBuilder =\n\t| ActionRowBuilder\n\t| ContainerBuilder\n\t| FileBuilder\n\t| MediaGalleryBuilder\n\t| MessageActionRowComponentBuilder\n\t| SectionBuilder\n\t| SeparatorBuilder\n\t| TextDisplayBuilder\n\t| ThumbnailBuilder;\n\n/**\n * Components here are mapped to their respective builder.\n */\nexport interface MappedComponentTypes {\n\t/**\n\t * The action row component type is associated with an {@link ActionRowBuilder}.\n\t */\n\t[ComponentType.ActionRow]: ActionRowBuilder;\n\t/**\n\t * The button component type is associated with a {@link ButtonBuilder}.\n\t */\n\t[ComponentType.Button]: ButtonBuilder;\n\t/**\n\t * The string select component type is associated with a {@link StringSelectMenuBuilder}.\n\t */\n\t[ComponentType.StringSelect]: StringSelectMenuBuilder;\n\t/**\n\t * The text input component type is associated with a {@link TextInputBuilder}.\n\t */\n\t[ComponentType.TextInput]: TextInputBuilder;\n\t/**\n\t * The user select component type is associated with a {@link UserSelectMenuBuilder}.\n\t */\n\t[ComponentType.UserSelect]: UserSelectMenuBuilder;\n\t/**\n\t * The role select component type is associated with a {@link RoleSelectMenuBuilder}.\n\t */\n\t[ComponentType.RoleSelect]: RoleSelectMenuBuilder;\n\t/**\n\t * The mentionable select component type is associated with a {@link MentionableSelectMenuBuilder}.\n\t */\n\t[ComponentType.MentionableSelect]: MentionableSelectMenuBuilder;\n\t/**\n\t * The channel select component type is associated with a {@link ChannelSelectMenuBuilder}.\n\t */\n\t[ComponentType.ChannelSelect]: ChannelSelectMenuBuilder;\n\t/**\n\t * The file component type is associated with a {@link FileBuilder}.\n\t */\n\t[ComponentType.File]: FileBuilder;\n\t/**\n\t * The separator component type is associated with a {@link SeparatorBuilder}.\n\t */\n\t[ComponentType.Separator]: SeparatorBuilder;\n\t/**\n\t * The container component type is associated with a {@link ContainerBuilder}.\n\t */\n\t[ComponentType.Container]: ContainerBuilder;\n\t/**\n\t * The text display component type is associated with a {@link TextDisplayBuilder}.\n\t */\n\t[ComponentType.TextDisplay]: TextDisplayBuilder;\n\t/**\n\t * The thumbnail component type is associated with a {@link ThumbnailBuilder}.\n\t */\n\t[ComponentType.Thumbnail]: ThumbnailBuilder;\n\t/**\n\t * The section component type is associated with a {@link SectionBuilder}.\n\t */\n\t[ComponentType.Section]: SectionBuilder;\n\t/**\n\t * The media gallery component type is associated with a {@link MediaGalleryBuilder}.\n\t */\n\t[ComponentType.MediaGallery]: MediaGalleryBuilder;\n\t/**\n\t * The label component type is associated with a {@link LabelBuilder}.\n\t */\n\t[ComponentType.Label]: LabelBuilder;\n\t/**\n\t * The file upload component type is associated with a {@link FileUploadBuilder}.\n\t */\n\t[ComponentType.FileUpload]: FileUploadBuilder;\n\t/**\n\t * The checkbox component type is associated with a {@link CheckboxBuilder}.\n\t */\n\t[ComponentType.Checkbox]: CheckboxBuilder;\n\t/**\n\t * The checkbox group component type is associated with a {@link CheckboxGroupBuilder}.\n\t */\n\t[ComponentType.CheckboxGroup]: CheckboxGroupBuilder;\n\t/**\n\t * The radio group component type is associated with a {@link RadioGroupBuilder}.\n\t */\n\t[ComponentType.RadioGroup]: RadioGroupBuilder;\n}\n\n/**\n * Factory for creating components from API data.\n *\n * @typeParam ComponentType - The type of component to use\n * @param data - The API data to transform to a component class\n */\nexport function createComponentBuilder(\n\t// eslint-disable-next-line @typescript-eslint/sort-type-constituents\n\tdata: (APIModalComponent | APIMessageComponent) & { type: ComponentType },\n): MappedComponentTypes[ComponentType];\n\n/**\n * Factory for creating components from API data.\n *\n * @typeParam ComponentBuilder - The type of component to use\n * @param data - The API data to transform to a component class\n */\nexport function createComponentBuilder(\n\tdata: ComponentBuilder,\n): ComponentBuilder;\n\nexport function createComponentBuilder(\n\tdata: APIMessageComponent | APIModalComponent | MessageComponentBuilder,\n): ComponentBuilder {\n\tif (data instanceof ComponentBuilder) {\n\t\treturn data;\n\t}\n\n\tswitch (data.type) {\n\t\tcase ComponentType.ActionRow:\n\t\t\treturn new ActionRowBuilder(data);\n\t\tcase ComponentType.Button:\n\t\t\treturn new ButtonBuilder(data);\n\t\tcase ComponentType.StringSelect:\n\t\t\treturn new StringSelectMenuBuilder(data);\n\t\tcase ComponentType.TextInput:\n\t\t\treturn new TextInputBuilder(data);\n\t\tcase ComponentType.UserSelect:\n\t\t\treturn new UserSelectMenuBuilder(data);\n\t\tcase ComponentType.RoleSelect:\n\t\t\treturn new RoleSelectMenuBuilder(data);\n\t\tcase ComponentType.MentionableSelect:\n\t\t\treturn new MentionableSelectMenuBuilder(data);\n\t\tcase ComponentType.ChannelSelect:\n\t\t\treturn new ChannelSelectMenuBuilder(data);\n\t\tcase ComponentType.File:\n\t\t\treturn new FileBuilder(data);\n\t\tcase ComponentType.Container:\n\t\t\treturn new ContainerBuilder(data);\n\t\tcase ComponentType.Section:\n\t\t\treturn new SectionBuilder(data);\n\t\tcase ComponentType.Separator:\n\t\t\treturn new SeparatorBuilder(data);\n\t\tcase ComponentType.TextDisplay:\n\t\t\treturn new TextDisplayBuilder(data);\n\t\tcase ComponentType.Thumbnail:\n\t\t\treturn new ThumbnailBuilder(data);\n\t\tcase ComponentType.MediaGallery:\n\t\t\treturn new MediaGalleryBuilder(data);\n\t\tcase ComponentType.Label:\n\t\t\treturn new LabelBuilder(data);\n\t\tcase ComponentType.FileUpload:\n\t\t\treturn new FileUploadBuilder(data);\n\t\tcase ComponentType.Checkbox:\n\t\t\treturn new CheckboxBuilder(data);\n\t\tcase ComponentType.CheckboxGroup:\n\t\t\treturn new CheckboxGroupBuilder(data);\n\t\tcase ComponentType.RadioGroup:\n\t\t\treturn new RadioGroupBuilder(data);\n\t\tdefault:\n\t\t\t// @ts-expect-error This case can still occur if we get a newer unsupported component type\n\t\t\tthrow new Error(`Cannot properly serialize component type: ${data.type}`);\n\t}\n}\n\nfunction isBuilder>(\n\tbuilder: unknown,\n\tConstructor: new () => Builder,\n): builder is Builder {\n\treturn builder instanceof Constructor;\n}\n\nexport function resolveBuilder, Builder extends JSONEncodable>(\n\tbuilder: Builder | ComponentType | ((builder: Builder) => Builder),\n\tConstructor: new (data?: ComponentType) => Builder,\n) {\n\tif (isBuilder(builder, Constructor)) {\n\t\treturn builder;\n\t}\n\n\tif (typeof builder === 'function') {\n\t\treturn builder(new Constructor());\n\t}\n\n\treturn new Constructor(builder);\n}\n","import {\n\tComponentType,\n\ttype APIButtonComponent,\n\ttype APIButtonComponentWithCustomId,\n\ttype APIButtonComponentWithSKUId,\n\ttype APIButtonComponentWithURL,\n\ttype APIMessageComponentEmoji,\n\ttype ButtonStyle,\n\ttype Snowflake,\n} from 'discord-api-types/v10';\nimport {\n\tbuttonLabelValidator,\n\tbuttonStyleValidator,\n\tcustomIdValidator,\n\tdisabledValidator,\n\temojiValidator,\n\turlValidator,\n\tvalidateRequiredButtonParameters,\n} from '../Assertions.js';\nimport { ComponentBuilder } from '../Component.js';\n\n/**\n * A builder that creates API-compatible JSON data for buttons.\n */\nexport class ButtonBuilder extends ComponentBuilder {\n\t/**\n\t * Creates a new button from API data.\n\t *\n\t * @param data - The API data to create this button with\n\t * @example\n\t * Creating a button from an API data object:\n\t * ```ts\n\t * const button = new ButtonBuilder({\n\t * \tcustom_id: 'a cool button',\n\t * \tstyle: ButtonStyle.Primary,\n\t * \tlabel: 'Click Me',\n\t * \temoji: {\n\t * \t\tname: 'smile',\n\t * \t\tid: '123456789012345678',\n\t * \t},\n\t * });\n\t * ```\n\t * @example\n\t * Creating a button using setters and API data:\n\t * ```ts\n\t * const button = new ButtonBuilder({\n\t * \tstyle: ButtonStyle.Secondary,\n\t * \tlabel: 'Click Me',\n\t * })\n\t * \t.setEmoji({ name: '🙂' })\n\t * \t.setCustomId('another cool button');\n\t * ```\n\t */\n\tpublic constructor(data?: Partial) {\n\t\tsuper({ type: ComponentType.Button, ...data });\n\t}\n\n\t/**\n\t * Sets the style of this button.\n\t *\n\t * @param style - The style to use\n\t */\n\tpublic setStyle(style: ButtonStyle) {\n\t\tthis.data.style = buttonStyleValidator.parse(style);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the URL for this button.\n\t *\n\t * @remarks\n\t * This method is only available to buttons using the `Link` button style.\n\t * Only three types of URL schemes are currently supported: `https://`, `http://`, and `discord://`.\n\t * @param url - The URL to use\n\t */\n\tpublic setURL(url: string) {\n\t\t(this.data as APIButtonComponentWithURL).url = urlValidator.parse(url);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the custom id for this button.\n\t *\n\t * @remarks\n\t * This method is only applicable to buttons that are not using the `Link` button style.\n\t * @param customId - The custom id to use\n\t */\n\tpublic setCustomId(customId: string) {\n\t\t(this.data as APIButtonComponentWithCustomId).custom_id = customIdValidator.parse(customId);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the SKU id that represents a purchasable SKU for this button.\n\t *\n\t * @remarks Only available when using premium-style buttons.\n\t * @param skuId - The SKU id to use\n\t */\n\tpublic setSKUId(skuId: Snowflake) {\n\t\t(this.data as APIButtonComponentWithSKUId).sku_id = skuId;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the emoji to display on this button.\n\t *\n\t * @param emoji - The emoji to use\n\t */\n\tpublic setEmoji(emoji: APIMessageComponentEmoji) {\n\t\t(this.data as Exclude).emoji = emojiValidator.parse(emoji);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether this button is disabled.\n\t *\n\t * @param disabled - Whether to disable this button\n\t */\n\tpublic setDisabled(disabled = true) {\n\t\tthis.data.disabled = disabledValidator.parse(disabled);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the label for this button.\n\t *\n\t * @param label - The label to use\n\t */\n\tpublic setLabel(label: string) {\n\t\t(this.data as Exclude).label = buttonLabelValidator.parse(label);\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic toJSON(): APIButtonComponent {\n\t\tvalidateRequiredButtonParameters(\n\t\t\tthis.data.style,\n\t\t\t(this.data as Exclude).label,\n\t\t\t(this.data as Exclude).emoji,\n\t\t\t(this.data as APIButtonComponentWithCustomId).custom_id,\n\t\t\t(this.data as APIButtonComponentWithSKUId).sku_id,\n\t\t\t(this.data as APIButtonComponentWithURL).url,\n\t\t);\n\n\t\treturn {\n\t\t\t...this.data,\n\t\t} as APIButtonComponent;\n\t}\n}\n","import type { APICheckboxComponent } from 'discord-api-types/v10';\nimport { ComponentType } from 'discord-api-types/v10';\nimport { ComponentBuilder } from '../Component';\nimport { checkboxPredicate } from './Assertions';\n\n/**\n * A builder that creates API-compatible JSON data for checkboxes.\n */\nexport class CheckboxBuilder extends ComponentBuilder {\n\t/**\n\t * Creates a new checkbox from API data.\n\t *\n\t * @param data - The API data to create this checkbox with\n\t * @example\n\t * Creating a checkbox from an API data object:\n\t * ```ts\n\t * const checkbox = new CheckboxBuilder({\n\t * \tcustom_id: 'accept_terms',\n\t * \tdefault: false,\n\t * });\n\t * ```\n\t * @example\n\t * Creating a checkbox using setters and API data:\n\t * ```ts\n\t * const checkbox = new CheckboxBuilder()\n\t * \t.setCustomId('subscribe_newsletter')\n\t * \t.setDefault(true);\n\t * ```\n\t */\n\tpublic constructor(data?: Partial) {\n\t\tsuper({ type: ComponentType.Checkbox, ...data });\n\t}\n\n\t/**\n\t * Sets the custom id of this checkbox.\n\t *\n\t * @param customId - The custom id to use\n\t */\n\tpublic setCustomId(customId: string) {\n\t\tthis.data.custom_id = customId;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether this checkbox is checked by default.\n\t *\n\t * @param isDefault - Whether the checkbox should be checked by default\n\t */\n\tpublic setDefault(isDefault: boolean) {\n\t\tthis.data.default = isDefault;\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic override toJSON(): APICheckboxComponent {\n\t\tcheckboxPredicate.parse(this.data);\n\t\treturn {\n\t\t\t...this.data,\n\t\t} as APICheckboxComponent;\n\t}\n}\n","import { Result, s } from '@sapphire/shapeshift';\nimport { ComponentType } from 'discord-api-types/v10';\nimport { isValidationEnabled } from '../../util/validation';\nimport { customIdValidator, idValidator } from '../Assertions';\n\nexport const checkboxPredicate = s\n\t.object({\n\t\ttype: s.literal(ComponentType.Checkbox),\n\t\tcustom_id: customIdValidator,\n\t\tid: idValidator.optional(),\n\t\tdefault: s.boolean().optional(),\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const checkboxGroupOptionPredicate = s\n\t.object({\n\t\tlabel: s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(100),\n\t\tvalue: s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(100),\n\t\tdescription: s.string().lengthLessThanOrEqual(100).optional(),\n\t\tdefault: s.boolean().optional(),\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const checkboxGroupPredicate = s\n\t.object({\n\t\ttype: s.literal(ComponentType.CheckboxGroup),\n\t\tcustom_id: customIdValidator,\n\t\tid: idValidator.optional(),\n\t\toptions: s.array(checkboxGroupOptionPredicate).lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(10),\n\t\tmin_values: s.number().int().greaterThanOrEqual(0).lessThanOrEqual(10).optional(),\n\t\tmax_values: s.number().int().greaterThanOrEqual(1).lessThanOrEqual(10).optional(),\n\t\trequired: s.boolean().optional(),\n\t})\n\t.reshape((data) => {\n\t\t// Ensure min_values is not greater than max_values\n\t\tif (data.min_values !== undefined && data.max_values !== undefined && data.min_values > data.max_values) {\n\t\t\treturn Result.err(new RangeError('min_values cannot be greater than max_values'));\n\t\t}\n\n\t\t// Ensure max_values is not greater than the number of options\n\t\tif (data.max_values !== undefined && data.max_values > data.options.length) {\n\t\t\treturn Result.err(new RangeError('max_values cannot be greater than the number of options'));\n\t\t}\n\n\t\t// Ensure min_values is not greater than the number of options\n\t\tif (data.min_values !== undefined && data.min_values > data.options.length) {\n\t\t\treturn Result.err(new RangeError('min_values cannot be greater than the number of options'));\n\t\t}\n\n\t\t// Ensure required is consistent with min_values\n\t\tif (data.required === true && data.min_values === 0) {\n\t\t\treturn Result.err(new RangeError('If required is true, min_values must be at least 1'));\n\t\t}\n\n\t\t// Ensure there are not more default values than max_values\n\t\tconst defaultCount = data.options.filter((option) => option.default === true).length;\n\t\tif (data.max_values !== undefined && defaultCount > data.max_values) {\n\t\t\treturn Result.err(new RangeError('The number of default options cannot be greater than max_values'));\n\t\t}\n\n\t\t// Ensure each option's value is unique\n\t\tconst values = data.options.map((option) => option.value);\n\t\tconst uniqueValues = new Set(values);\n\t\tif (uniqueValues.size !== values.length) {\n\t\t\treturn Result.err(new RangeError('Each option in a checkbox group must have a unique value'));\n\t\t}\n\n\t\treturn Result.ok(data);\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const radioGroupOptionPredicate = checkboxGroupOptionPredicate;\n\nexport const radioGroupPredicate = s\n\t.object({\n\t\ttype: s.literal(ComponentType.RadioGroup),\n\t\tcustom_id: customIdValidator,\n\t\tid: idValidator.optional(),\n\t\toptions: s.array(radioGroupOptionPredicate).lengthGreaterThanOrEqual(2).lengthLessThanOrEqual(10),\n\t\trequired: s.boolean().optional(),\n\t})\n\t.reshape((data) => {\n\t\t// Ensure there is exactly one default option\n\t\tconst defaultCount = data.options.filter((option) => option.default === true).length;\n\t\tif (defaultCount > 1) {\n\t\t\treturn Result.err(new RangeError('There can be at most one default option in a radio group'));\n\t\t}\n\n\t\t// Ensure each option's value is unique\n\t\tconst values = data.options.map((option) => option.value);\n\t\tconst uniqueValues = new Set(values);\n\t\tif (uniqueValues.size !== values.length) {\n\t\t\treturn Result.err(new RangeError('Each option in a radio group must have a unique value'));\n\t\t}\n\n\t\treturn Result.ok(data);\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n","import type { APICheckboxGroupComponent, APICheckboxGroupOption } from 'discord-api-types/v10';\nimport { ComponentType } from 'discord-api-types/v10';\nimport type { RestOrArray } from '../../util/normalizeArray';\nimport { normalizeArray } from '../../util/normalizeArray';\nimport { ComponentBuilder } from '../Component';\nimport { checkboxGroupOptionPredicate, checkboxGroupPredicate } from './Assertions';\nimport { CheckboxGroupOptionBuilder } from './CheckboxGroupOption';\n\n/**\n * A builder that creates API-compatible JSON data for checkbox groups.\n */\nexport class CheckboxGroupBuilder extends ComponentBuilder {\n\t/**\n\t * The options within this checkbox group.\n\t */\n\tpublic readonly options: CheckboxGroupOptionBuilder[];\n\n\t/**\n\t * Creates a new checkbox group from API data.\n\t *\n\t * @param data - The API data to create this checkbox group with\n\t * @example\n\t * Creating a checkbox group from an API data object:\n\t * ```ts\n\t * const checkboxGroup = new CheckboxGroupBuilder({\n\t * \tcustom_id: 'select_options',\n\t * \toptions: [\n\t * \t\t{ label: 'Option 1', value: 'option_1' },\n\t * \t\t{ label: 'Option 2', value: 'option_2' },\n\t * \t],\n\t * });\n\t * ```\n\t * @example\n\t * Creating a checkbox group using setters and API data:\n\t * ```ts\n\t * const checkboxGroup = new CheckboxGroupBuilder()\n\t * \t.setCustomId('choose_items')\n\t * \t.setOptions([\n\t * \t\t{ label: 'Item A', value: 'item_a' },\n\t * \t\t{ label: 'Item B', value: 'item_b' },\n\t * \t])\n\t * \t.setMinValues(1)\n\t * \t.setMaxValues(2);\n\t * ```\n\t */\n\tpublic constructor(data?: Partial) {\n\t\tconst { options, ...initData } = data ?? {};\n\t\tsuper({ ...initData, type: ComponentType.CheckboxGroup });\n\t\tthis.options = options?.map((option: APICheckboxGroupOption) => new CheckboxGroupOptionBuilder(option)) ?? [];\n\t}\n\n\t/**\n\t * Sets the custom id of this checkbox group.\n\t *\n\t * @param customId - The custom id to use\n\t */\n\tpublic setCustomId(customId: string) {\n\t\tthis.data.custom_id = customId;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds options to this checkbox group.\n\t *\n\t * @param options - The options to add\n\t */\n\tpublic addOptions(...options: RestOrArray) {\n\t\tconst normalizedOptions = normalizeArray(options);\n\n\t\tthis.options.push(\n\t\t\t...normalizedOptions.map((normalizedOption) => {\n\t\t\t\t// I do this because TS' duck typing causes issues,\n\t\t\t\t// if I put in a RadioGroupOption, TS lets it pass but\n\t\t\t\t// it fails to convert to a checkbox group option at runtime\n\t\t\t\tconst json = 'toJSON' in normalizedOption ? normalizedOption.toJSON() : normalizedOption;\n\t\t\t\tconst option = new CheckboxGroupOptionBuilder(json);\n\t\t\t\tcheckboxGroupOptionPredicate.parse(option.toJSON());\n\t\t\t\treturn option;\n\t\t\t}),\n\t\t);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the options for this checkbox group.\n\t *\n\t * @param options - The options to use\n\t */\n\tpublic setOptions(...options: RestOrArray) {\n\t\treturn this.spliceOptions(0, this.options.length, ...options);\n\t}\n\n\t/**\n\t * Removes, replaces, or inserts options for this checkbox group.\n\t *\n\t * @remarks\n\t * This method behaves similarly\n\t * to {@link https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/splice | Array.prototype.splice()}.\n\t * It's useful for modifying and adjusting the order of existing options.\n\t * @param index - The index to start at\n\t * @param deleteCount - The number of options to remove\n\t * @param options - The replacing option objects or builders\n\t */\n\tpublic spliceOptions(\n\t\tindex: number,\n\t\tdeleteCount: number,\n\t\t...options: RestOrArray\n\t) {\n\t\tconst normalizedOptions = normalizeArray(options);\n\n\t\tconst clone = [...this.options];\n\n\t\tclone.splice(\n\t\t\tindex,\n\t\t\tdeleteCount,\n\t\t\t...normalizedOptions.map((normalizedOption) => {\n\t\t\t\t// I do this because TS' duck typing causes issues,\n\t\t\t\t// if I put in a RadioGroupOption, TS lets it pass but\n\t\t\t\t// it fails to convert to a checkbox group option at runtime\n\t\t\t\tconst json = 'toJSON' in normalizedOption ? normalizedOption.toJSON() : normalizedOption;\n\t\t\t\tconst option = new CheckboxGroupOptionBuilder(json);\n\t\t\t\tcheckboxGroupOptionPredicate.parse(option.toJSON());\n\t\t\t\treturn option;\n\t\t\t}),\n\t\t);\n\n\t\tthis.options.splice(0, this.options.length, ...clone);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the minimum number of options that must be selected.\n\t *\n\t * @param minValues - The minimum number of options that must be selected\n\t */\n\tpublic setMinValues(minValues: number) {\n\t\tthis.data.min_values = minValues;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the maximum number of options that can be selected.\n\t *\n\t * @param maxValues - The maximum number of options that can be selected\n\t */\n\tpublic setMaxValues(maxValues: number) {\n\t\tthis.data.max_values = maxValues;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether selecting options is required.\n\t *\n\t * @param required - Whether selecting options is required\n\t */\n\tpublic setRequired(required: boolean) {\n\t\tthis.data.required = required;\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic override toJSON(): APICheckboxGroupComponent {\n\t\tconst data = {\n\t\t\t...this.data,\n\t\t\toptions: this.options.map((option) => option.toJSON()),\n\t\t};\n\n\t\tcheckboxGroupPredicate.parse(data);\n\n\t\treturn data as APICheckboxGroupComponent;\n\t}\n}\n","import type { JSONEncodable } from '@discordjs/util';\nimport type { APICheckboxGroupOption } from 'discord-api-types/v10';\nimport { checkboxGroupOptionPredicate } from './Assertions';\n\n/**\n * A builder that creates API-compatible JSON data for checkbox group options.\n */\nexport class CheckboxGroupOptionBuilder implements JSONEncodable {\n\t/**\n\t * Creates a new checkbox group option from API data.\n\t *\n\t * @param data - The API data to create this checkbox group option with\n\t * @example\n\t * Creating a checkbox group option from an API data object:\n\t * ```ts\n\t * const option = new CheckboxGroupOptionBuilder({\n\t * \tlabel: 'Option 1',\n\t * \tvalue: 'option_1',\n\t * });\n\t * ```\n\t * @example\n\t * Creating a checkbox group option using setters and API data:\n\t * ```ts\n\t * const option = new CheckboxGroupOptionBuilder()\n\t * \t.setLabel('Option 2')\n\t * \t.setValue('option_2');\n\t * ```\n\t */\n\tpublic constructor(public data: Partial = {}) {}\n\n\t/**\n\t * Sets the label for this option.\n\t *\n\t * @param label - The label to use\n\t */\n\tpublic setLabel(label: string) {\n\t\tthis.data.label = label;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the value for this option.\n\t *\n\t * @param value - The value to use\n\t */\n\tpublic setValue(value: string) {\n\t\tthis.data.value = value;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the description for this option.\n\t *\n\t * @param description - The description to use\n\t */\n\tpublic setDescription(description: string) {\n\t\tthis.data.description = description;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether this option is selected by default.\n\t *\n\t * @param isDefault - Whether the option should be selected by default\n\t */\n\tpublic setDefault(isDefault: boolean) {\n\t\tthis.data.default = isDefault;\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic toJSON(): APICheckboxGroupOption {\n\t\tcheckboxGroupOptionPredicate.parse(this.data);\n\n\t\treturn {\n\t\t\t...this.data,\n\t\t} as APICheckboxGroupOption;\n\t}\n}\n","import type { APIRadioGroupComponent, APIRadioGroupOption } from 'discord-api-types/v10';\nimport { ComponentType } from 'discord-api-types/v10';\nimport type { RestOrArray } from '../../util/normalizeArray';\nimport { normalizeArray } from '../../util/normalizeArray';\nimport { ComponentBuilder } from '../Component';\nimport { radioGroupOptionPredicate, radioGroupPredicate } from './Assertions';\nimport { RadioGroupOptionBuilder } from './RadioGroupOption';\n\n/**\n * A builder that creates API-compatible JSON data for radio groups.\n */\nexport class RadioGroupBuilder extends ComponentBuilder {\n\t/**\n\t * The options within this radio group.\n\t */\n\tpublic readonly options: RadioGroupOptionBuilder[];\n\n\t/**\n\t * Creates a new radio group from API data.\n\t *\n\t * @param data - The API data to create this radio group with\n\t * @example\n\t * Creating a radio group from an API data object:\n\t * ```ts\n\t * const radioGroup = new RadioGroupBuilder({\n\t * \tcustom_id: 'select_options',\n\t * \toptions: [\n\t * \t\t{ label: 'Option 1', value: 'option_1' },\n\t * \t\t{ label: 'Option 2', value: 'option_2' },\n\t * \t],\n\t * });\n\t * ```\n\t * @example\n\t * Creating a radio group using setters and API data:\n\t * ```ts\n\t * const radioGroup = new RadioGroupBuilder()\n\t * \t.setCustomId('choose_items')\n\t * \t.setOptions([\n\t * \t\t{ label: 'Item A', value: 'item_a' },\n\t * \t\t{ label: 'Item B', value: 'item_b' },\n\t * \t])\n\t * ```\n\t */\n\tpublic constructor(data?: Partial) {\n\t\tconst { options, ...initData } = data ?? {};\n\t\tsuper({ ...initData, type: ComponentType.RadioGroup });\n\t\tthis.options = options?.map((option: APIRadioGroupOption) => new RadioGroupOptionBuilder(option)) ?? [];\n\t}\n\n\t/**\n\t * Sets the custom id of this radio group.\n\t *\n\t * @param customId - The custom id to use\n\t */\n\tpublic setCustomId(customId: string) {\n\t\tthis.data.custom_id = customId;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds options to this radio group.\n\t *\n\t * @param options - The options to add\n\t */\n\tpublic addOptions(...options: RestOrArray) {\n\t\tconst normalizedOptions = normalizeArray(options);\n\n\t\tthis.options.push(\n\t\t\t...normalizedOptions.map((normalizedOption) => {\n\t\t\t\t// I do this because TS' duck typing causes issues,\n\t\t\t\t// if I put in a CheckboxGroupOption, TS lets it pass but\n\t\t\t\t// it fails to convert to a checkbox group option at runtime\n\t\t\t\tconst json = 'toJSON' in normalizedOption ? normalizedOption.toJSON() : normalizedOption;\n\t\t\t\tconst option = new RadioGroupOptionBuilder(json);\n\t\t\t\tradioGroupOptionPredicate.parse(option.toJSON());\n\t\t\t\treturn option;\n\t\t\t}),\n\t\t);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the options for this radio group.\n\t *\n\t * @param options - The options to use\n\t */\n\tpublic setOptions(...options: RestOrArray) {\n\t\treturn this.spliceOptions(0, this.options.length, ...options);\n\t}\n\n\t/**\n\t * Removes, replaces, or inserts options for this radio group.\n\t *\n\t * @remarks\n\t * This method behaves similarly\n\t * to {@link https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/splice | Array.prototype.splice()}.\n\t * It's useful for modifying and adjusting the order of existing options.\n\t * @param index - The index to start at\n\t * @param deleteCount - The number of options to remove\n\t * @param options - The replacing option objects or builders\n\t */\n\tpublic spliceOptions(\n\t\tindex: number,\n\t\tdeleteCount: number,\n\t\t...options: RestOrArray\n\t) {\n\t\tconst normalizedOptions = normalizeArray(options);\n\n\t\tconst clone = [...this.options];\n\n\t\tclone.splice(\n\t\t\tindex,\n\t\t\tdeleteCount,\n\t\t\t...normalizedOptions.map((normalizedOption) => {\n\t\t\t\t// I do this because TS' duck typing causes issues,\n\t\t\t\t// if I put in a CheckboxGroupOption, TS lets it pass but\n\t\t\t\t// it fails to convert to a radio group option at runtime\n\t\t\t\tconst json = 'toJSON' in normalizedOption ? normalizedOption.toJSON() : normalizedOption;\n\t\t\t\tconst option = new RadioGroupOptionBuilder(json);\n\t\t\t\tradioGroupOptionPredicate.parse(option.toJSON());\n\t\t\t\treturn option;\n\t\t\t}),\n\t\t);\n\n\t\tthis.options.splice(0, this.options.length, ...clone);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether selecting options is required.\n\t *\n\t * @param required - Whether selecting options is required\n\t */\n\tpublic setRequired(required: boolean) {\n\t\tthis.data.required = required;\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic override toJSON(): APIRadioGroupComponent {\n\t\tconst data = {\n\t\t\t...this.data,\n\t\t\toptions: this.options.map((option) => option.toJSON()),\n\t\t};\n\n\t\tradioGroupPredicate.parse(data);\n\n\t\treturn data as APIRadioGroupComponent;\n\t}\n}\n","import type { JSONEncodable } from '@discordjs/util';\nimport type { APIRadioGroupOption } from 'discord-api-types/v10';\nimport { radioGroupOptionPredicate } from './Assertions';\n\n/**\n * A builder that creates API-compatible JSON data for radio group options.\n */\nexport class RadioGroupOptionBuilder implements JSONEncodable {\n\t/**\n\t * Creates a new radio group option from API data.\n\t *\n\t * @param data - The API data to create this radio group option with\n\t * @example\n\t * Creating a radio group option from an API data object:\n\t * ```ts\n\t * const option = new RadioGroupOptionBuilder({\n\t * \tlabel: 'Option 1',\n\t * \tvalue: 'option_1',\n\t * });\n\t * ```\n\t * @example\n\t * Creating a radio group option using setters and API data:\n\t * ```ts\n\t * const option = new RadioGroupOptionBuilder()\n\t * \t.setLabel('Option 2')\n\t * \t.setValue('option_2');\n\t * ```\n\t */\n\tpublic constructor(public data: Partial = {}) {}\n\n\t/**\n\t * Sets the label for this option.\n\t *\n\t * @param label - The label to use\n\t */\n\tpublic setLabel(label: string) {\n\t\tthis.data.label = label;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the value for this option.\n\t *\n\t * @param value - The value to use\n\t */\n\tpublic setValue(value: string) {\n\t\tthis.data.value = value;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the description for this option.\n\t *\n\t * @param description - The description to use\n\t */\n\tpublic setDescription(description: string) {\n\t\tthis.data.description = description;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether this option is selected by default.\n\t *\n\t * @param isDefault - Whether the option should be selected by default\n\t */\n\tpublic setDefault(isDefault: boolean) {\n\t\tthis.data.default = isDefault;\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic toJSON(): APIRadioGroupOption {\n\t\tradioGroupOptionPredicate.parse(this.data);\n\n\t\treturn {\n\t\t\t...this.data,\n\t\t} as APIRadioGroupOption;\n\t}\n}\n","import { type APIFileUploadComponent, ComponentType } from 'discord-api-types/v10';\nimport { ComponentBuilder } from '../Component.js';\nimport { fileUploadPredicate } from './Assertions.js';\n\n/**\n * A builder that creates API-compatible JSON data for file uploads.\n */\nexport class FileUploadBuilder extends ComponentBuilder {\n\t/**\n\t * Creates a new file upload.\n\t *\n\t * @param data - The API data to create this file upload with\n\t * @example\n\t * Creating a file upload from an API data object:\n\t * ```ts\n\t * const fileUpload = new FileUploadBuilder({\n\t * \tcustom_id: \"file_upload\",\n\t * min_values: 2,\n\t * max_values: 5,\n\t * });\n\t * ```\n\t * @example\n\t * Creating a file upload using setters and API data:\n\t * ```ts\n\t * const fileUpload = new FileUploadBuilder({\n\t * \tcustom_id: \"file_upload\",\n\t * min_values: 2,\n\t * max_values: 5,\n\t * }).setRequired();\n\t * ```\n\t */\n\tpublic constructor(data: Partial = {}) {\n\t\tsuper({ type: ComponentType.FileUpload, ...data });\n\t}\n\n\t/**\n\t * Sets the custom id for this file upload.\n\t *\n\t * @param customId - The custom id to use\n\t */\n\tpublic setCustomId(customId: string) {\n\t\tthis.data.custom_id = customId;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the minimum number of file uploads required.\n\t *\n\t * @param minValues - The minimum values that must be uploaded\n\t */\n\tpublic setMinValues(minValues: number) {\n\t\tthis.data.min_values = minValues;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Clears the minimum values.\n\t */\n\tpublic clearMinValues() {\n\t\tthis.data.min_values = undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the maximum number of file uploads required.\n\t *\n\t * @param maxValues - The maximum values that can be uploaded\n\t */\n\tpublic setMaxValues(maxValues: number) {\n\t\tthis.data.max_values = maxValues;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Clears the maximum values.\n\t */\n\tpublic clearMaxValues() {\n\t\tthis.data.max_values = undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether this file upload is required.\n\t *\n\t * @param required - Whether this file upload is required\n\t */\n\tpublic setRequired(required = true) {\n\t\tthis.data.required = required;\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic toJSON(): APIFileUploadComponent {\n\t\tfileUploadPredicate.parse(this.data);\n\t\treturn this.data as APIFileUploadComponent;\n\t}\n}\n","import { s } from '@sapphire/shapeshift';\nimport { ComponentType } from 'discord-api-types/v10';\nimport { customIdValidator, idValidator } from '../Assertions.js';\n\nexport const fileUploadPredicate = s.object({\n\ttype: s.literal(ComponentType.FileUpload),\n\tid: idValidator.optional(),\n\tcustom_id: customIdValidator,\n\tmin_values: s.number().greaterThanOrEqual(0).lessThanOrEqual(10).optional(),\n\tmax_values: s.number().greaterThanOrEqual(1).lessThanOrEqual(10).optional(),\n\trequired: s.boolean().optional(),\n});\n","import type {\n\tAPIChannelSelectComponent,\n\tAPICheckboxComponent,\n\tAPICheckboxGroupComponent,\n\tAPIFileUploadComponent,\n\tAPILabelComponent,\n\tAPIMentionableSelectComponent,\n\tAPIRadioGroupComponent,\n\tAPIRoleSelectComponent,\n\tAPIStringSelectComponent,\n\tAPITextInputComponent,\n\tAPIUserSelectComponent,\n} from 'discord-api-types/v10';\nimport { ComponentType } from 'discord-api-types/v10';\nimport { ComponentBuilder } from '../Component.js';\nimport { createComponentBuilder, resolveBuilder } from '../Components.js';\nimport { CheckboxBuilder } from '../checkbox/Checkbox.js';\nimport { CheckboxGroupBuilder } from '../checkbox/CheckboxGroup.js';\nimport { RadioGroupBuilder } from '../checkbox/RadioGroup.js';\nimport { FileUploadBuilder } from '../fileUpload/FileUpload.js';\nimport { ChannelSelectMenuBuilder } from '../selectMenu/ChannelSelectMenu.js';\nimport { MentionableSelectMenuBuilder } from '../selectMenu/MentionableSelectMenu.js';\nimport { RoleSelectMenuBuilder } from '../selectMenu/RoleSelectMenu.js';\nimport { StringSelectMenuBuilder } from '../selectMenu/StringSelectMenu.js';\nimport { UserSelectMenuBuilder } from '../selectMenu/UserSelectMenu.js';\nimport { TextInputBuilder } from '../textInput/TextInput.js';\nimport { labelPredicate } from './Assertions.js';\n\nexport interface LabelBuilderData extends Partial> {\n\tcomponent?:\n\t\t| ChannelSelectMenuBuilder\n\t\t| CheckboxBuilder\n\t\t| CheckboxGroupBuilder\n\t\t| FileUploadBuilder\n\t\t| MentionableSelectMenuBuilder\n\t\t| RadioGroupBuilder\n\t\t| RoleSelectMenuBuilder\n\t\t| StringSelectMenuBuilder\n\t\t| TextInputBuilder\n\t\t| UserSelectMenuBuilder;\n}\n\n/**\n * A builder that creates API-compatible JSON data for labels.\n */\nexport class LabelBuilder extends ComponentBuilder {\n\t/**\n\t * @internal\n\t */\n\tpublic override readonly data: LabelBuilderData;\n\n\t/**\n\t * Creates a new label.\n\t *\n\t * @param data - The API data to create this label with\n\t * @example\n\t * Creating a label from an API data object:\n\t * ```ts\n\t * const label = new LabelBuilder({\n\t * \tlabel: \"label\",\n\t * \tcomponent,\n\t * });\n\t * ```\n\t * @example\n\t * Creating a label using setters and API data:\n\t * ```ts\n\t * const label = new LabelBuilder({\n\t * \tlabel: 'label',\n\t * \tcomponent,\n\t * }).setLabel('new text');\n\t * ```\n\t */\n\tpublic constructor(data: Partial = {}) {\n\t\tsuper({ type: ComponentType.Label });\n\n\t\tconst { component, ...rest } = data;\n\n\t\tthis.data = {\n\t\t\t...rest,\n\t\t\tcomponent: component ? createComponentBuilder(component) : undefined,\n\t\t\ttype: ComponentType.Label,\n\t\t};\n\t}\n\n\t/**\n\t * Sets the label for this label.\n\t *\n\t * @param label - The label to use\n\t */\n\tpublic setLabel(label: string) {\n\t\tthis.data.label = label;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the description for this label.\n\t *\n\t * @param description - The description to use\n\t */\n\tpublic setDescription(description: string) {\n\t\tthis.data.description = description;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Clears the description for this label.\n\t */\n\tpublic clearDescription() {\n\t\tthis.data.description = undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets a string select menu component to this label.\n\t *\n\t * @param input - A function that returns a component builder or an already built builder\n\t */\n\tpublic setStringSelectMenuComponent(\n\t\tinput:\n\t\t\t| APIStringSelectComponent\n\t\t\t| StringSelectMenuBuilder\n\t\t\t| ((builder: StringSelectMenuBuilder) => StringSelectMenuBuilder),\n\t): this {\n\t\tthis.data.component = resolveBuilder(input, StringSelectMenuBuilder);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets a user select menu component to this label.\n\t *\n\t * @param input - A function that returns a component builder or an already built builder\n\t */\n\tpublic setUserSelectMenuComponent(\n\t\tinput: APIUserSelectComponent | UserSelectMenuBuilder | ((builder: UserSelectMenuBuilder) => UserSelectMenuBuilder),\n\t): this {\n\t\tthis.data.component = resolveBuilder(input, UserSelectMenuBuilder);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets a role select menu component to this label.\n\t *\n\t * @param input - A function that returns a component builder or an already built builder\n\t */\n\tpublic setRoleSelectMenuComponent(\n\t\tinput: APIRoleSelectComponent | RoleSelectMenuBuilder | ((builder: RoleSelectMenuBuilder) => RoleSelectMenuBuilder),\n\t): this {\n\t\tthis.data.component = resolveBuilder(input, RoleSelectMenuBuilder);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets a mentionable select menu component to this label.\n\t *\n\t * @param input - A function that returns a component builder or an already built builder\n\t */\n\tpublic setMentionableSelectMenuComponent(\n\t\tinput:\n\t\t\t| APIMentionableSelectComponent\n\t\t\t| MentionableSelectMenuBuilder\n\t\t\t| ((builder: MentionableSelectMenuBuilder) => MentionableSelectMenuBuilder),\n\t): this {\n\t\tthis.data.component = resolveBuilder(input, MentionableSelectMenuBuilder);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets a channel select menu component to this label.\n\t *\n\t * @param input - A function that returns a component builder or an already built builder\n\t */\n\tpublic setChannelSelectMenuComponent(\n\t\tinput:\n\t\t\t| APIChannelSelectComponent\n\t\t\t| ChannelSelectMenuBuilder\n\t\t\t| ((builder: ChannelSelectMenuBuilder) => ChannelSelectMenuBuilder),\n\t): this {\n\t\tthis.data.component = resolveBuilder(input, ChannelSelectMenuBuilder);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets a text input component to this label.\n\t *\n\t * @param input - A function that returns a component builder or an already built builder\n\t */\n\tpublic setTextInputComponent(\n\t\tinput: APITextInputComponent | TextInputBuilder | ((builder: TextInputBuilder) => TextInputBuilder),\n\t): this {\n\t\tthis.data.component = resolveBuilder(input, TextInputBuilder);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets a file upload component to this label.\n\t *\n\t * @param input - A function that returns a component builder or an already built builder\n\t */\n\tpublic setFileUploadComponent(\n\t\tinput: APIFileUploadComponent | FileUploadBuilder | ((builder: FileUploadBuilder) => FileUploadBuilder),\n\t): this {\n\t\tthis.data.component = resolveBuilder(input, FileUploadBuilder);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets a checkbox component to this label.\n\t *\n\t * @param input - A function that returns a component builder or an already built builder\n\t */\n\tpublic setCheckboxComponent(\n\t\tinput: APICheckboxComponent | CheckboxBuilder | ((builder: CheckboxBuilder) => CheckboxBuilder),\n\t): this {\n\t\tthis.data.component = resolveBuilder(input, CheckboxBuilder);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets a checkbox group component to this label.\n\t *\n\t * @param input - A function that returns a component builder or an already built builder\n\t */\n\tpublic setCheckboxGroupComponent(\n\t\tinput: APICheckboxGroupComponent | CheckboxGroupBuilder | ((builder: CheckboxGroupBuilder) => CheckboxGroupBuilder),\n\t): this {\n\t\tthis.data.component = resolveBuilder(input, CheckboxGroupBuilder);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets a radio group component to this label.\n\t *\n\t * @param input - A function that returns a component builder or an already built builder\n\t */\n\tpublic setRadioGroupComponent(\n\t\tinput: APIRadioGroupComponent | RadioGroupBuilder | ((builder: RadioGroupBuilder) => RadioGroupBuilder),\n\t): this {\n\t\tthis.data.component = resolveBuilder(input, RadioGroupBuilder);\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic override toJSON(): APILabelComponent {\n\t\tconst { component, ...rest } = this.data;\n\n\t\tconst data = {\n\t\t\t...rest,\n\t\t\t// The label predicate validates the component.\n\t\t\tcomponent: component?.toJSON(),\n\t\t};\n\n\t\tlabelPredicate.parse(data);\n\n\t\treturn data as APILabelComponent;\n\t}\n}\n","import {\n\ttype APIChannelSelectComponent,\n\ttype ChannelType,\n\ttype Snowflake,\n\tComponentType,\n\tSelectMenuDefaultValueType,\n} from 'discord-api-types/v10';\nimport { type RestOrArray, normalizeArray } from '../../util/normalizeArray.js';\nimport { channelTypesValidator, customIdValidator, optionsLengthValidator } from '../Assertions.js';\nimport { BaseSelectMenuBuilder } from './BaseSelectMenu.js';\n\n/**\n * A builder that creates API-compatible JSON data for channel select menus.\n */\nexport class ChannelSelectMenuBuilder extends BaseSelectMenuBuilder {\n\t/**\n\t * Creates a new select menu from API data.\n\t *\n\t * @param data - The API data to create this select menu with\n\t * @example\n\t * Creating a select menu from an API data object:\n\t * ```ts\n\t * const selectMenu = new ChannelSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * \tplaceholder: 'select an option',\n\t * \tmax_values: 2,\n\t * });\n\t * ```\n\t * @example\n\t * Creating a select menu using setters and API data:\n\t * ```ts\n\t * const selectMenu = new ChannelSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * })\n\t * \t.addChannelTypes(ChannelType.GuildText, ChannelType.GuildAnnouncement)\n\t * \t.setMinValues(2);\n\t * ```\n\t */\n\tpublic constructor(data?: Partial) {\n\t\tsuper({ ...data, type: ComponentType.ChannelSelect });\n\t}\n\n\t/**\n\t * Adds channel types to this select menu.\n\t *\n\t * @param types - The channel types to use\n\t */\n\tpublic addChannelTypes(...types: RestOrArray) {\n\t\tconst normalizedTypes = normalizeArray(types);\n\t\tthis.data.channel_types ??= [];\n\t\tthis.data.channel_types.push(...channelTypesValidator.parse(normalizedTypes));\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets channel types for this select menu.\n\t *\n\t * @param types - The channel types to use\n\t */\n\tpublic setChannelTypes(...types: RestOrArray) {\n\t\tconst normalizedTypes = normalizeArray(types);\n\t\tthis.data.channel_types ??= [];\n\t\tthis.data.channel_types.splice(0, this.data.channel_types.length, ...channelTypesValidator.parse(normalizedTypes));\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds default channels to this auto populated select menu.\n\t *\n\t * @param channels - The channels to add\n\t */\n\tpublic addDefaultChannels(...channels: RestOrArray) {\n\t\tconst normalizedValues = normalizeArray(channels);\n\t\toptionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length);\n\t\tthis.data.default_values ??= [];\n\n\t\tthis.data.default_values.push(\n\t\t\t...normalizedValues.map((id) => ({\n\t\t\t\tid,\n\t\t\t\ttype: SelectMenuDefaultValueType.Channel as const,\n\t\t\t})),\n\t\t);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets default channels for this auto populated select menu.\n\t *\n\t * @param channels - The channels to set\n\t */\n\tpublic setDefaultChannels(...channels: RestOrArray) {\n\t\tconst normalizedValues = normalizeArray(channels);\n\t\toptionsLengthValidator.parse(normalizedValues.length);\n\n\t\tthis.data.default_values = normalizedValues.map((id) => ({\n\t\t\tid,\n\t\t\ttype: SelectMenuDefaultValueType.Channel as const,\n\t\t}));\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc BaseSelectMenuBuilder.toJSON}\n\t */\n\tpublic override toJSON(): APIChannelSelectComponent {\n\t\tcustomIdValidator.parse(this.data.custom_id);\n\n\t\treturn {\n\t\t\t...this.data,\n\t\t} as APIChannelSelectComponent;\n\t}\n}\n","import { s } from '@sapphire/shapeshift';\nimport { ComponentType, TextInputStyle } from 'discord-api-types/v10';\nimport { isValidationEnabled } from '../../util/validation.js';\nimport { customIdValidator, idValidator } from '../Assertions.js';\n\nexport const textInputStyleValidator = s.nativeEnum(TextInputStyle).setValidationEnabled(isValidationEnabled);\nexport const minLengthValidator = s\n\t.number()\n\t.int()\n\t.greaterThanOrEqual(0)\n\t.lessThanOrEqual(4_000)\n\t.setValidationEnabled(isValidationEnabled);\nexport const maxLengthValidator = s\n\t.number()\n\t.int()\n\t.greaterThanOrEqual(1)\n\t.lessThanOrEqual(4_000)\n\t.setValidationEnabled(isValidationEnabled);\nexport const requiredValidator = s.boolean().setValidationEnabled(isValidationEnabled);\nexport const valueValidator = s.string().lengthLessThanOrEqual(4_000).setValidationEnabled(isValidationEnabled);\nexport const placeholderValidator = s.string().lengthLessThanOrEqual(100).setValidationEnabled(isValidationEnabled);\nexport const labelValidator = s\n\t.string()\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(45)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const textInputPredicate = s\n\t.object({\n\t\ttype: s.literal(ComponentType.TextInput),\n\t\tcustom_id: customIdValidator,\n\t\tstyle: textInputStyleValidator,\n\t\tid: idValidator.optional(),\n\t\tmin_length: minLengthValidator.optional(),\n\t\tmax_length: maxLengthValidator.optional(),\n\t\tplaceholder: placeholderValidator.optional(),\n\t\tvalue: valueValidator.optional(),\n\t\trequired: requiredValidator.optional(),\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n\nexport function validateRequiredParameters(customId?: string, style?: TextInputStyle) {\n\tcustomIdValidator.parse(customId);\n\ttextInputStyleValidator.parse(style);\n}\n","import type { APISelectMenuComponent } from 'discord-api-types/v10';\nimport { customIdValidator, disabledValidator, minMaxValidator, placeholderValidator } from '../Assertions.js';\nimport { ComponentBuilder } from '../Component.js';\nimport { requiredValidator } from '../textInput/Assertions.js';\n\n/**\n * The base select menu builder that contains common symbols for select menu builders.\n *\n * @typeParam SelectMenuType - The type of select menu this would be instantiated for.\n */\nexport abstract class BaseSelectMenuBuilder<\n\tSelectMenuType extends APISelectMenuComponent,\n> extends ComponentBuilder {\n\t/**\n\t * Sets the placeholder for this select menu.\n\t *\n\t * @param placeholder - The placeholder to use\n\t */\n\tpublic setPlaceholder(placeholder: string) {\n\t\tthis.data.placeholder = placeholderValidator.parse(placeholder);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the minimum values that must be selected in the select menu.\n\t *\n\t * @param minValues - The minimum values that must be selected\n\t */\n\tpublic setMinValues(minValues: number) {\n\t\tthis.data.min_values = minMaxValidator.parse(minValues);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the maximum values that can be selected in the select menu.\n\t *\n\t * @param maxValues - The maximum values that can be selected\n\t */\n\tpublic setMaxValues(maxValues: number) {\n\t\tthis.data.max_values = minMaxValidator.parse(maxValues);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the custom id for this select menu.\n\t *\n\t * @param customId - The custom id to use\n\t */\n\tpublic setCustomId(customId: string) {\n\t\tthis.data.custom_id = customIdValidator.parse(customId);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether this select menu is disabled.\n\t *\n\t * @param disabled - Whether this select menu is disabled\n\t */\n\tpublic setDisabled(disabled = true) {\n\t\tthis.data.disabled = disabledValidator.parse(disabled);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether this select menu is required.\n\t *\n\t * @remarks Only for use in modals.\n\t * @param required - Whether this select menu is required\n\t */\n\tpublic setRequired(required = true) {\n\t\tthis.data.required = requiredValidator.parse(required);\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic toJSON(): SelectMenuType {\n\t\tcustomIdValidator.parse(this.data.custom_id);\n\t\treturn {\n\t\t\t...this.data,\n\t\t} as SelectMenuType;\n\t}\n}\n","import {\n\ttype APIMentionableSelectComponent,\n\ttype APISelectMenuDefaultValue,\n\ttype Snowflake,\n\tComponentType,\n\tSelectMenuDefaultValueType,\n} from 'discord-api-types/v10';\nimport { type RestOrArray, normalizeArray } from '../../util/normalizeArray.js';\nimport { optionsLengthValidator } from '../Assertions.js';\nimport { BaseSelectMenuBuilder } from './BaseSelectMenu.js';\n\n/**\n * A builder that creates API-compatible JSON data for mentionable select menus.\n */\nexport class MentionableSelectMenuBuilder extends BaseSelectMenuBuilder {\n\t/**\n\t * Creates a new select menu from API data.\n\t *\n\t * @param data - The API data to create this select menu with\n\t * @example\n\t * Creating a select menu from an API data object:\n\t * ```ts\n\t * const selectMenu = new MentionableSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * \tplaceholder: 'select an option',\n\t * \tmax_values: 2,\n\t * });\n\t * ```\n\t * @example\n\t * Creating a select menu using setters and API data:\n\t * ```ts\n\t * const selectMenu = new MentionableSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * })\n\t * \t.setMinValues(1);\n\t * ```\n\t */\n\tpublic constructor(data?: Partial) {\n\t\tsuper({ ...data, type: ComponentType.MentionableSelect });\n\t}\n\n\t/**\n\t * Adds default roles to this auto populated select menu.\n\t *\n\t * @param roles - The roles to add\n\t */\n\tpublic addDefaultRoles(...roles: RestOrArray) {\n\t\tconst normalizedValues = normalizeArray(roles);\n\t\toptionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length);\n\t\tthis.data.default_values ??= [];\n\n\t\tthis.data.default_values.push(\n\t\t\t...normalizedValues.map((id) => ({\n\t\t\t\tid,\n\t\t\t\ttype: SelectMenuDefaultValueType.Role as const,\n\t\t\t})),\n\t\t);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds default users to this auto populated select menu.\n\t *\n\t * @param users - The users to add\n\t */\n\tpublic addDefaultUsers(...users: RestOrArray) {\n\t\tconst normalizedValues = normalizeArray(users);\n\t\toptionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length);\n\t\tthis.data.default_values ??= [];\n\n\t\tthis.data.default_values.push(\n\t\t\t...normalizedValues.map((id) => ({\n\t\t\t\tid,\n\t\t\t\ttype: SelectMenuDefaultValueType.User as const,\n\t\t\t})),\n\t\t);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds default values to this auto populated select menu.\n\t *\n\t * @param values - The values to add\n\t */\n\tpublic addDefaultValues(\n\t\t...values: RestOrArray<\n\t\t\t| APISelectMenuDefaultValue\n\t\t\t| APISelectMenuDefaultValue\n\t\t>\n\t) {\n\t\tconst normalizedValues = normalizeArray(values);\n\t\toptionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length);\n\t\tthis.data.default_values ??= [];\n\t\tthis.data.default_values.push(...normalizedValues);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets default values for this auto populated select menu.\n\t *\n\t * @param values - The values to set\n\t */\n\tpublic setDefaultValues(\n\t\t...values: RestOrArray<\n\t\t\t| APISelectMenuDefaultValue\n\t\t\t| APISelectMenuDefaultValue\n\t\t>\n\t) {\n\t\tconst normalizedValues = normalizeArray(values);\n\t\toptionsLengthValidator.parse(normalizedValues.length);\n\t\tthis.data.default_values = normalizedValues;\n\t\treturn this;\n\t}\n}\n","import {\n\ttype APIRoleSelectComponent,\n\ttype Snowflake,\n\tComponentType,\n\tSelectMenuDefaultValueType,\n} from 'discord-api-types/v10';\nimport { type RestOrArray, normalizeArray } from '../../util/normalizeArray.js';\nimport { optionsLengthValidator } from '../Assertions.js';\nimport { BaseSelectMenuBuilder } from './BaseSelectMenu.js';\n\n/**\n * A builder that creates API-compatible JSON data for role select menus.\n */\nexport class RoleSelectMenuBuilder extends BaseSelectMenuBuilder {\n\t/**\n\t * Creates a new select menu from API data.\n\t *\n\t * @param data - The API data to create this select menu with\n\t * @example\n\t * Creating a select menu from an API data object:\n\t * ```ts\n\t * const selectMenu = new RoleSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * \tplaceholder: 'select an option',\n\t * \tmax_values: 2,\n\t * });\n\t * ```\n\t * @example\n\t * Creating a select menu using setters and API data:\n\t * ```ts\n\t * const selectMenu = new RoleSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * })\n\t * \t.setMinValues(1);\n\t * ```\n\t */\n\tpublic constructor(data?: Partial) {\n\t\tsuper({ ...data, type: ComponentType.RoleSelect });\n\t}\n\n\t/**\n\t * Adds default roles to this auto populated select menu.\n\t *\n\t * @param roles - The roles to add\n\t */\n\tpublic addDefaultRoles(...roles: RestOrArray) {\n\t\tconst normalizedValues = normalizeArray(roles);\n\t\toptionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length);\n\t\tthis.data.default_values ??= [];\n\n\t\tthis.data.default_values.push(\n\t\t\t...normalizedValues.map((id) => ({\n\t\t\t\tid,\n\t\t\t\ttype: SelectMenuDefaultValueType.Role as const,\n\t\t\t})),\n\t\t);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets default roles for this auto populated select menu.\n\t *\n\t * @param roles - The roles to set\n\t */\n\tpublic setDefaultRoles(...roles: RestOrArray) {\n\t\tconst normalizedValues = normalizeArray(roles);\n\t\toptionsLengthValidator.parse(normalizedValues.length);\n\n\t\tthis.data.default_values = normalizedValues.map((id) => ({\n\t\t\tid,\n\t\t\ttype: SelectMenuDefaultValueType.Role as const,\n\t\t}));\n\n\t\treturn this;\n\t}\n}\n","import { ComponentType } from 'discord-api-types/v10';\nimport type { APIStringSelectComponent, APISelectMenuOption } from 'discord-api-types/v10';\nimport { normalizeArray, type RestOrArray } from '../../util/normalizeArray.js';\nimport { optionsLengthValidator, validateRequiredSelectMenuParameters } from '../Assertions.js';\nimport { selectMenuStringOptionPredicate } from './Assertions.js';\nimport { BaseSelectMenuBuilder } from './BaseSelectMenu.js';\nimport { StringSelectMenuOptionBuilder } from './StringSelectMenuOption.js';\n\n/**\n * A builder that creates API-compatible JSON data for string select menus.\n */\nexport class StringSelectMenuBuilder extends BaseSelectMenuBuilder {\n\t/**\n\t * The options within this select menu.\n\t */\n\tpublic readonly options: StringSelectMenuOptionBuilder[];\n\n\t/**\n\t * Creates a new select menu from API data.\n\t *\n\t * @param data - The API data to create this select menu with\n\t * @example\n\t * Creating a select menu from an API data object:\n\t * ```ts\n\t * const selectMenu = new StringSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * \tplaceholder: 'select an option',\n\t * \tmax_values: 2,\n\t * \toptions: [\n\t * \t\t{ label: 'option 1', value: '1' },\n\t * \t\t{ label: 'option 2', value: '2' },\n\t * \t\t{ label: 'option 3', value: '3' },\n\t * \t],\n\t * });\n\t * ```\n\t * @example\n\t * Creating a select menu using setters and API data:\n\t * ```ts\n\t * const selectMenu = new StringSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * })\n\t * \t.setMinValues(1)\n\t * \t.addOptions({\n\t * \t\tlabel: 'Catchy',\n\t * \t\tvalue: 'catch',\n\t * \t});\n\t * ```\n\t */\n\tpublic constructor(data?: Partial) {\n\t\tconst { options, ...initData } = data ?? {};\n\t\tsuper({ ...initData, type: ComponentType.StringSelect });\n\t\tthis.options = options?.map((option: APISelectMenuOption) => new StringSelectMenuOptionBuilder(option)) ?? [];\n\t}\n\n\t/**\n\t * Adds options to this select menu.\n\t *\n\t * @param options - The options to add\n\t */\n\tpublic addOptions(...options: RestOrArray) {\n\t\tconst normalizedOptions = normalizeArray(options);\n\t\toptionsLengthValidator.parse(this.options.length + normalizedOptions.length);\n\t\tthis.options.push(\n\t\t\t...normalizedOptions.map((normalizedOption) =>\n\t\t\t\tnormalizedOption instanceof StringSelectMenuOptionBuilder\n\t\t\t\t\t? normalizedOption\n\t\t\t\t\t: new StringSelectMenuOptionBuilder(selectMenuStringOptionPredicate.parse(normalizedOption)),\n\t\t\t),\n\t\t);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the options for this select menu.\n\t *\n\t * @param options - The options to set\n\t */\n\tpublic setOptions(...options: RestOrArray) {\n\t\treturn this.spliceOptions(0, this.options.length, ...options);\n\t}\n\n\t/**\n\t * Removes, replaces, or inserts options for this select menu.\n\t *\n\t * @remarks\n\t * This method behaves similarly\n\t * to {@link https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/splice | Array.prototype.splice()}.\n\t * It's useful for modifying and adjusting the order of existing options.\n\t * @example\n\t * Remove the first option:\n\t * ```ts\n\t * selectMenu.spliceOptions(0, 1);\n\t * ```\n\t * @example\n\t * Remove the first n option:\n\t * ```ts\n\t * const n = 4;\n\t * selectMenu.spliceOptions(0, n);\n\t * ```\n\t * @example\n\t * Remove the last option:\n\t * ```ts\n\t * selectMenu.spliceOptions(-1, 1);\n\t * ```\n\t * @param index - The index to start at\n\t * @param deleteCount - The number of options to remove\n\t * @param options - The replacing option objects or builders\n\t */\n\tpublic spliceOptions(\n\t\tindex: number,\n\t\tdeleteCount: number,\n\t\t...options: RestOrArray\n\t) {\n\t\tconst normalizedOptions = normalizeArray(options);\n\n\t\tconst clone = [...this.options];\n\n\t\tclone.splice(\n\t\t\tindex,\n\t\t\tdeleteCount,\n\t\t\t...normalizedOptions.map((normalizedOption) =>\n\t\t\t\tnormalizedOption instanceof StringSelectMenuOptionBuilder\n\t\t\t\t\t? normalizedOption\n\t\t\t\t\t: new StringSelectMenuOptionBuilder(selectMenuStringOptionPredicate.parse(normalizedOption)),\n\t\t\t),\n\t\t);\n\n\t\toptionsLengthValidator.parse(clone.length);\n\t\tthis.options.splice(0, this.options.length, ...clone);\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc BaseSelectMenuBuilder.toJSON}\n\t */\n\tpublic override toJSON(): APIStringSelectComponent {\n\t\tvalidateRequiredSelectMenuParameters(this.options, this.data.custom_id);\n\n\t\treturn {\n\t\t\t...this.data,\n\t\t\toptions: this.options.map((option) => option.toJSON()),\n\t\t} as APIStringSelectComponent;\n\t}\n}\n","import { Result, s } from '@sapphire/shapeshift';\nimport { ChannelType, ComponentType, SelectMenuDefaultValueType } from 'discord-api-types/v10';\nimport { isValidationEnabled } from '../../util/validation.js';\nimport { customIdValidator, emojiValidator, idValidator } from '../Assertions.js';\n\nconst selectMenuBasePredicate = s.object({\n\tid: idValidator.optional(),\n\tplaceholder: s.string().lengthLessThanOrEqual(150).optional(),\n\tmin_values: s.number().greaterThanOrEqual(0).lessThanOrEqual(25).optional(),\n\tmax_values: s.number().greaterThanOrEqual(0).lessThanOrEqual(25).optional(),\n\tcustom_id: customIdValidator,\n\tdisabled: s.boolean().optional(),\n});\n\nexport const selectMenuChannelPredicate = selectMenuBasePredicate\n\t.extend({\n\t\ttype: s.literal(ComponentType.ChannelSelect),\n\t\tchannel_types: s.nativeEnum(ChannelType).array().optional(),\n\t\tdefault_values: s\n\t\t\t.object({ id: s.string(), type: s.literal(SelectMenuDefaultValueType.Channel) })\n\t\t\t.array()\n\t\t\t.lengthLessThanOrEqual(25)\n\t\t\t.optional(),\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const selectMenuMentionablePredicate = selectMenuBasePredicate\n\t.extend({\n\t\ttype: s.literal(ComponentType.MentionableSelect),\n\t\tdefault_values: s\n\t\t\t.object({\n\t\t\t\tid: s.string(),\n\t\t\t\ttype: s.union([s.literal(SelectMenuDefaultValueType.Role), s.literal(SelectMenuDefaultValueType.User)]),\n\t\t\t})\n\t\t\t.array()\n\t\t\t.lengthLessThanOrEqual(25)\n\t\t\t.optional(),\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const selectMenuRolePredicate = selectMenuBasePredicate\n\t.extend({\n\t\ttype: s.literal(ComponentType.RoleSelect),\n\t\tdefault_values: s\n\t\t\t.object({ id: s.string(), type: s.literal(SelectMenuDefaultValueType.Role) })\n\t\t\t.array()\n\t\t\t.lengthLessThanOrEqual(25)\n\t\t\t.optional(),\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const selectMenuUserPredicate = selectMenuBasePredicate\n\t.extend({\n\t\ttype: s.literal(ComponentType.UserSelect),\n\t\tdefault_values: s\n\t\t\t.object({ id: s.string(), type: s.literal(SelectMenuDefaultValueType.User) })\n\t\t\t.array()\n\t\t\t.lengthLessThanOrEqual(25)\n\t\t\t.optional(),\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const selectMenuStringOptionPredicate = s\n\t.object({\n\t\tlabel: s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(100),\n\t\tvalue: s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(100),\n\t\tdescription: s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(100).optional(),\n\t\temoji: emojiValidator.optional(),\n\t\tdefault: s.boolean().optional(),\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const selectMenuStringPredicate = selectMenuBasePredicate\n\t.extend({\n\t\ttype: s.literal(ComponentType.StringSelect),\n\t\toptions: selectMenuStringOptionPredicate.array().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(25),\n\t})\n\t.reshape((value) => {\n\t\tif (value.min_values !== undefined && value.options.length < value.min_values) {\n\t\t\treturn Result.err(new RangeError(`The number of options must be greater than or equal to min_values`));\n\t\t}\n\n\t\tif (value.min_values !== undefined && value.max_values !== undefined && value.min_values > value.max_values) {\n\t\t\treturn Result.err(\n\t\t\t\tnew RangeError(`The maximum amount of options must be greater than or equal to the minimum amount of options`),\n\t\t\t);\n\t\t}\n\n\t\treturn Result.ok(value);\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n","import {\n\ttype APIUserSelectComponent,\n\ttype Snowflake,\n\tComponentType,\n\tSelectMenuDefaultValueType,\n} from 'discord-api-types/v10';\nimport { type RestOrArray, normalizeArray } from '../../util/normalizeArray.js';\nimport { optionsLengthValidator } from '../Assertions.js';\nimport { BaseSelectMenuBuilder } from './BaseSelectMenu.js';\n\n/**\n * A builder that creates API-compatible JSON data for user select menus.\n */\nexport class UserSelectMenuBuilder extends BaseSelectMenuBuilder {\n\t/**\n\t * Creates a new select menu from API data.\n\t *\n\t * @param data - The API data to create this select menu with\n\t * @example\n\t * Creating a select menu from an API data object:\n\t * ```ts\n\t * const selectMenu = new UserSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * \tplaceholder: 'select an option',\n\t * \tmax_values: 2,\n\t * });\n\t * ```\n\t * @example\n\t * Creating a select menu using setters and API data:\n\t * ```ts\n\t * const selectMenu = new UserSelectMenuBuilder({\n\t * \tcustom_id: 'a cool select menu',\n\t * })\n\t * \t.setMinValues(1);\n\t * ```\n\t */\n\tpublic constructor(data?: Partial) {\n\t\tsuper({ ...data, type: ComponentType.UserSelect });\n\t}\n\n\t/**\n\t * Adds default users to this auto populated select menu.\n\t *\n\t * @param users - The users to add\n\t */\n\tpublic addDefaultUsers(...users: RestOrArray) {\n\t\tconst normalizedValues = normalizeArray(users);\n\t\toptionsLengthValidator.parse((this.data.default_values?.length ?? 0) + normalizedValues.length);\n\t\tthis.data.default_values ??= [];\n\n\t\tthis.data.default_values.push(\n\t\t\t...normalizedValues.map((id) => ({\n\t\t\t\tid,\n\t\t\t\ttype: SelectMenuDefaultValueType.User as const,\n\t\t\t})),\n\t\t);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets default users for this auto populated select menu.\n\t *\n\t * @param users - The users to set\n\t */\n\tpublic setDefaultUsers(...users: RestOrArray) {\n\t\tconst normalizedValues = normalizeArray(users);\n\t\toptionsLengthValidator.parse(normalizedValues.length);\n\n\t\tthis.data.default_values = normalizedValues.map((id) => ({\n\t\t\tid,\n\t\t\ttype: SelectMenuDefaultValueType.User as const,\n\t\t}));\n\n\t\treturn this;\n\t}\n}\n","import { isJSONEncodable, type Equatable, type JSONEncodable } from '@discordjs/util';\nimport { ComponentType, type TextInputStyle, type APITextInputComponent } from 'discord-api-types/v10';\nimport isEqual from 'fast-deep-equal';\nimport { customIdValidator } from '../Assertions.js';\nimport { ComponentBuilder } from '../Component.js';\nimport {\n\tmaxLengthValidator,\n\tminLengthValidator,\n\tplaceholderValidator,\n\trequiredValidator,\n\tvalueValidator,\n\tvalidateRequiredParameters,\n\tlabelValidator,\n\ttextInputStyleValidator,\n} from './Assertions.js';\n\n/**\n * A builder that creates API-compatible JSON data for text inputs.\n */\nexport class TextInputBuilder\n\textends ComponentBuilder\n\timplements Equatable>\n{\n\t/**\n\t * Creates a new text input from API data.\n\t *\n\t * @param data - The API data to create this text input with\n\t * @example\n\t * Creating a text input from an API data object:\n\t * ```ts\n\t * const textInput = new TextInputBuilder({\n\t * \tcustom_id: 'a cool text input',\n\t * \tplaceholder: 'Type something',\n\t * \tstyle: TextInputStyle.Short,\n\t * });\n\t * ```\n\t * @example\n\t * Creating a text input using setters and API data:\n\t * ```ts\n\t * const textInput = new TextInputBuilder({\n\t * \tplaceholder: 'Type something else',\n\t * })\n\t * \t.setCustomId('woah')\n\t * \t.setStyle(TextInputStyle.Paragraph);\n\t * ```\n\t */\n\tpublic constructor(data?: APITextInputComponent & { type?: ComponentType.TextInput }) {\n\t\tsuper({ type: ComponentType.TextInput, ...data });\n\t}\n\n\t/**\n\t * Sets the custom id for this text input.\n\t *\n\t * @param customId - The custom id to use\n\t */\n\tpublic setCustomId(customId: string) {\n\t\tthis.data.custom_id = customIdValidator.parse(customId);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the label for this text input.\n\t *\n\t * @param label - The label to use\n\t * @deprecated Use a label builder to create a label (and optionally a description) instead.\n\t */\n\tpublic setLabel(label: string) {\n\t\tthis.data.label = labelValidator.parse(label);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the style for this text input.\n\t *\n\t * @param style - The style to use\n\t */\n\tpublic setStyle(style: TextInputStyle) {\n\t\tthis.data.style = textInputStyleValidator.parse(style);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the minimum length of text for this text input.\n\t *\n\t * @param minLength - The minimum length of text for this text input\n\t */\n\tpublic setMinLength(minLength: number) {\n\t\tthis.data.min_length = minLengthValidator.parse(minLength);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the maximum length of text for this text input.\n\t *\n\t * @param maxLength - The maximum length of text for this text input\n\t */\n\tpublic setMaxLength(maxLength: number) {\n\t\tthis.data.max_length = maxLengthValidator.parse(maxLength);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the placeholder for this text input.\n\t *\n\t * @param placeholder - The placeholder to use\n\t */\n\tpublic setPlaceholder(placeholder: string) {\n\t\tthis.data.placeholder = placeholderValidator.parse(placeholder);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the value for this text input.\n\t *\n\t * @param value - The value to use\n\t */\n\tpublic setValue(value: string) {\n\t\tthis.data.value = valueValidator.parse(value);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether this text input is required.\n\t *\n\t * @param required - Whether this text input is required\n\t */\n\tpublic setRequired(required = true) {\n\t\tthis.data.required = requiredValidator.parse(required);\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic toJSON(): APITextInputComponent {\n\t\tvalidateRequiredParameters(this.data.custom_id, this.data.style);\n\n\t\treturn {\n\t\t\t...this.data,\n\t\t} as APITextInputComponent;\n\t}\n\n\t/**\n\t * Whether this is equal to another structure.\n\t */\n\tpublic equals(other: APITextInputComponent | JSONEncodable): boolean {\n\t\tif (isJSONEncodable(other)) {\n\t\t\treturn isEqual(other.toJSON(), this.data);\n\t\t}\n\n\t\treturn isEqual(other, this.data);\n\t}\n}\n","import { s } from '@sapphire/shapeshift';\nimport { ComponentType } from 'discord-api-types/v10';\nimport { isValidationEnabled } from '../../util/validation.js';\nimport { idValidator } from '../Assertions.js';\nimport { checkboxGroupPredicate, checkboxPredicate, radioGroupPredicate } from '../checkbox/Assertions.js';\nimport { fileUploadPredicate } from '../fileUpload/Assertions.js';\nimport {\n\tselectMenuChannelPredicate,\n\tselectMenuMentionablePredicate,\n\tselectMenuRolePredicate,\n\tselectMenuStringPredicate,\n\tselectMenuUserPredicate,\n} from '../selectMenu/Assertions.js';\nimport { textInputPredicate } from '../textInput/Assertions.js';\n\nexport const labelPredicate = s\n\t.object({\n\t\tid: idValidator.optional(),\n\t\ttype: s.literal(ComponentType.Label),\n\t\tlabel: s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(45),\n\t\tdescription: s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(100).optional(),\n\t\tcomponent: s.union([\n\t\t\ttextInputPredicate,\n\t\t\tselectMenuUserPredicate,\n\t\t\tselectMenuRolePredicate,\n\t\t\tselectMenuMentionablePredicate,\n\t\t\tselectMenuChannelPredicate,\n\t\t\tselectMenuStringPredicate,\n\t\t\tfileUploadPredicate,\n\t\t\tcheckboxPredicate,\n\t\t\tcheckboxGroupPredicate,\n\t\t\tradioGroupPredicate,\n\t\t]),\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n","/* eslint-disable jsdoc/check-param-names */\n\nimport type {\n\tAPIActionRowComponent,\n\tAPIComponentInContainer,\n\tAPIComponentInMessageActionRow,\n\tAPIContainerComponent,\n\tAPIFileComponent,\n\tAPIMediaGalleryComponent,\n\tAPISectionComponent,\n\tAPISeparatorComponent,\n\tAPITextDisplayComponent,\n} from 'discord-api-types/v10';\nimport { ComponentType } from 'discord-api-types/v10';\nimport type { RGBTuple } from '../../index.js';\nimport { MediaGalleryBuilder, SectionBuilder } from '../../index.js';\nimport { normalizeArray, type RestOrArray } from '../../util/normalizeArray.js';\nimport type { AnyComponentBuilder, MessageActionRowComponentBuilder } from '../ActionRow.js';\nimport { ActionRowBuilder } from '../ActionRow.js';\nimport { ComponentBuilder } from '../Component.js';\nimport { createComponentBuilder, resolveBuilder } from '../Components.js';\nimport { containerColorPredicate, spoilerPredicate } from './Assertions.js';\nimport { FileBuilder } from './File.js';\nimport { SeparatorBuilder } from './Separator.js';\nimport { TextDisplayBuilder } from './TextDisplay.js';\n\n/**\n * The builders that may be used within a container.\n */\nexport type ContainerComponentBuilder =\n\t| ActionRowBuilder\n\t| FileBuilder\n\t| MediaGalleryBuilder\n\t| SectionBuilder\n\t| SeparatorBuilder\n\t| TextDisplayBuilder;\n\n/**\n * A builder that creates API-compatible JSON data for a container.\n */\nexport class ContainerBuilder extends ComponentBuilder {\n\t/**\n\t * The components within this container.\n\t */\n\tpublic readonly components: ContainerComponentBuilder[];\n\n\t/**\n\t * Creates a new container from API data.\n\t *\n\t * @param data - The API data to create this container with\n\t * @example\n\t * Creating a container from an API data object:\n\t * ```ts\n\t * const container = new ContainerBuilder({\n\t * \tcomponents: [\n\t * \t\t{\n\t * \t\t\tcontent: \"Some text here\",\n\t * \t\t\ttype: ComponentType.TextDisplay,\n\t * \t\t},\n\t * \t],\n\t * });\n\t * ```\n\t * @example\n\t * Creating a container using setters and API data:\n\t * ```ts\n\t * const container = new ContainerBuilder({\n\t * \tcomponents: [\n\t * \t\t{\n\t * \t\t\tcontent: \"# Heading\",\n\t * \t\t\ttype: ComponentType.TextDisplay,\n\t * \t\t},\n\t * \t],\n\t * })\n\t * .addSeparatorComponents(separator)\n\t * .addSectionComponents(section);\n\t * ```\n\t */\n\tpublic constructor({ components, ...data }: Partial = {}) {\n\t\tsuper({ type: ComponentType.Container, ...data });\n\t\tthis.components = (components?.map((component) => createComponentBuilder(component)) ??\n\t\t\t[]) as ContainerComponentBuilder[];\n\t}\n\n\t/**\n\t * Sets the accent color of this container.\n\t *\n\t * @param color - The color to use\n\t */\n\tpublic setAccentColor(color?: RGBTuple | number): this {\n\t\t// Data assertions\n\t\tcontainerColorPredicate.parse(color);\n\n\t\tif (Array.isArray(color)) {\n\t\t\tconst [red, green, blue] = color;\n\t\t\tthis.data.accent_color = (red << 16) + (green << 8) + blue;\n\t\t\treturn this;\n\t\t}\n\n\t\tthis.data.accent_color = color;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Clears the accent color of this container.\n\t */\n\tpublic clearAccentColor() {\n\t\tthis.data.accent_color = undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds action row components to this container.\n\t *\n\t * @param components - The action row components to add\n\t */\n\tpublic addActionRowComponents(\n\t\t...components: RestOrArray<\n\t\t\t| ActionRowBuilder\n\t\t\t| APIActionRowComponent\n\t\t\t| ((builder: ActionRowBuilder) => ActionRowBuilder)\n\t\t>\n\t) {\n\t\tthis.components.push(\n\t\t\t...normalizeArray(components).map((component) => resolveBuilder(component, ActionRowBuilder)),\n\t\t);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds file components to this container.\n\t *\n\t * @param components - The file components to add\n\t */\n\tpublic addFileComponents(\n\t\t...components: RestOrArray FileBuilder)>\n\t) {\n\t\tthis.components.push(...normalizeArray(components).map((component) => resolveBuilder(component, FileBuilder)));\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds media gallery components to this container.\n\t *\n\t * @param components - The media gallery components to add\n\t */\n\tpublic addMediaGalleryComponents(\n\t\t...components: RestOrArray<\n\t\t\tAPIMediaGalleryComponent | MediaGalleryBuilder | ((builder: MediaGalleryBuilder) => MediaGalleryBuilder)\n\t\t>\n\t) {\n\t\tthis.components.push(\n\t\t\t...normalizeArray(components).map((component) => resolveBuilder(component, MediaGalleryBuilder)),\n\t\t);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds section components to this container.\n\t *\n\t * @param components - The section components to add\n\t */\n\tpublic addSectionComponents(\n\t\t...components: RestOrArray SectionBuilder)>\n\t) {\n\t\tthis.components.push(...normalizeArray(components).map((component) => resolveBuilder(component, SectionBuilder)));\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds separator components to this container.\n\t *\n\t * @param components - The separator components to add\n\t */\n\tpublic addSeparatorComponents(\n\t\t...components: RestOrArray<\n\t\t\tAPISeparatorComponent | SeparatorBuilder | ((builder: SeparatorBuilder) => SeparatorBuilder)\n\t\t>\n\t) {\n\t\tthis.components.push(...normalizeArray(components).map((component) => resolveBuilder(component, SeparatorBuilder)));\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds text display components to this container.\n\t *\n\t * @param components - The text display components to add\n\t */\n\tpublic addTextDisplayComponents(\n\t\t...components: RestOrArray<\n\t\t\tAPITextDisplayComponent | TextDisplayBuilder | ((builder: TextDisplayBuilder) => TextDisplayBuilder)\n\t\t>\n\t) {\n\t\tthis.components.push(\n\t\t\t...normalizeArray(components).map((component) => resolveBuilder(component, TextDisplayBuilder)),\n\t\t);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Removes, replaces, or inserts components for this container.\n\t *\n\t * @param index - The index to start removing, replacing or inserting components\n\t * @param deleteCount - The amount of components to remove\n\t * @param components - The components to set\n\t */\n\tpublic spliceComponents(\n\t\tindex: number,\n\t\tdeleteCount: number,\n\t\t...components: RestOrArray\n\t) {\n\t\tthis.components.splice(\n\t\t\tindex,\n\t\t\tdeleteCount,\n\t\t\t...normalizeArray(components).map((component) =>\n\t\t\t\tcomponent instanceof ComponentBuilder ? component : createComponentBuilder(component),\n\t\t\t),\n\t\t);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the spoiler status of this container.\n\t *\n\t * @param spoiler - The spoiler status to use\n\t */\n\tpublic setSpoiler(spoiler = true) {\n\t\tthis.data.spoiler = spoilerPredicate.parse(spoiler);\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic toJSON(): APIContainerComponent {\n\t\treturn {\n\t\t\t...this.data,\n\t\t\tcomponents: this.components.map((component) => component.toJSON()),\n\t\t} as APIContainerComponent;\n\t}\n}\n","import { s } from '@sapphire/shapeshift';\nimport { SeparatorSpacingSize } from 'discord-api-types/v10';\nimport { colorPredicate } from '../../messages/embed/Assertions';\nimport { isValidationEnabled } from '../../util/validation';\nimport { ComponentBuilder } from '../Component';\nimport { ButtonBuilder } from '../button/Button';\nimport type { ContainerComponentBuilder } from './Container';\nimport type { MediaGalleryItemBuilder } from './MediaGalleryItem';\nimport type { TextDisplayBuilder } from './TextDisplay';\nimport { ThumbnailBuilder } from './Thumbnail';\n\nexport const unfurledMediaItemPredicate = s\n\t.object({\n\t\turl: s\n\t\t\t.string()\n\t\t\t.url(\n\t\t\t\t{ allowedProtocols: ['http:', 'https:', 'attachment:'] },\n\t\t\t\t{ message: 'Invalid protocol for media URL. Must be http:, https:, or attachment:' },\n\t\t\t),\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const descriptionPredicate = s\n\t.string()\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(1_024)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const filePredicate = s\n\t.object({\n\t\turl: s\n\t\t\t.string()\n\t\t\t.url({ allowedProtocols: ['attachment:'] }, { message: 'Invalid protocol for file URL. Must be attachment:' }),\n\t})\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const spoilerPredicate = s.boolean();\n\nexport const dividerPredicate = s.boolean();\n\nexport const spacingPredicate = s.nativeEnum(SeparatorSpacingSize);\n\nexport const textDisplayContentPredicate = s\n\t.string()\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(4_000)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const accessoryPredicate = s\n\t.instance(ButtonBuilder)\n\t.or(s.instance(ThumbnailBuilder))\n\t.setValidationEnabled(isValidationEnabled);\n\nexport const containerColorPredicate = colorPredicate.nullish();\n\nexport function assertReturnOfBuilder(\n\tinput: unknown,\n\tExpectedInstanceOf: new () => ReturnType,\n): asserts input is ReturnType {\n\ts.instance(ExpectedInstanceOf).setValidationEnabled(isValidationEnabled).parse(input);\n}\n\nexport function validateComponentArray<\n\tReturnType extends ContainerComponentBuilder | MediaGalleryItemBuilder = ContainerComponentBuilder,\n>(input: unknown, min: number, max: number, ExpectedInstanceOf?: new () => ReturnType): asserts input is ReturnType[] {\n\t(ExpectedInstanceOf ? s.instance(ExpectedInstanceOf) : s.instance(ComponentBuilder))\n\t\t.array()\n\t\t.lengthGreaterThanOrEqual(min)\n\t\t.lengthLessThanOrEqual(max)\n\t\t.setValidationEnabled(isValidationEnabled)\n\t\t.parse(input);\n}\n","import type { APIThumbnailComponent } from 'discord-api-types/v10';\nimport { ComponentType } from 'discord-api-types/v10';\nimport { ComponentBuilder } from '../Component';\nimport { descriptionPredicate, spoilerPredicate, unfurledMediaItemPredicate } from './Assertions';\n\nexport class ThumbnailBuilder extends ComponentBuilder {\n\t/**\n\t * Creates a new thumbnail from API data.\n\t *\n\t * @param data - The API data to create this thumbnail with\n\t * @example\n\t * Creating a thumbnail from an API data object:\n\t * ```ts\n\t * const thumbnail = new ThumbnailBuilder({\n\t * \tdescription: 'some text',\n\t * media: {\n\t * url: 'https://cdn.discordapp.com/embed/avatars/4.png',\n\t * },\n\t * });\n\t * ```\n\t * @example\n\t * Creating a thumbnail using setters and API data:\n\t * ```ts\n\t * const thumbnail = new ThumbnailBuilder({\n\t * \tmedia: {\n\t * url: 'attachment://image.png',\n\t * },\n\t * })\n\t * \t.setDescription('alt text');\n\t * ```\n\t */\n\tpublic constructor(data: Partial = {}) {\n\t\tsuper({\n\t\t\ttype: ComponentType.Thumbnail,\n\t\t\t...data,\n\t\t\tmedia: data.media ? { url: data.media.url } : undefined,\n\t\t});\n\t}\n\n\t/**\n\t * Sets the description of this thumbnail.\n\t *\n\t * @param description - The description to use\n\t */\n\tpublic setDescription(description: string) {\n\t\tthis.data.description = descriptionPredicate.parse(description);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Clears the description of this thumbnail.\n\t */\n\tpublic clearDescription() {\n\t\tthis.data.description = undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the spoiler status of this thumbnail.\n\t *\n\t * @param spoiler - The spoiler status to use\n\t */\n\tpublic setSpoiler(spoiler = true) {\n\t\tthis.data.spoiler = spoilerPredicate.parse(spoiler);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the media URL of this thumbnail.\n\t *\n\t * @param url - The URL to use\n\t */\n\tpublic setURL(url: string) {\n\t\tthis.data.media = unfurledMediaItemPredicate.parse({ url });\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritdoc ComponentBuilder.toJSON}\n\t */\n\tpublic override toJSON(): APIThumbnailComponent {\n\t\tunfurledMediaItemPredicate.parse(this.data.media);\n\n\t\treturn { ...this.data } as APIThumbnailComponent;\n\t}\n}\n","import { ComponentType, type APIFileComponent } from 'discord-api-types/v10';\nimport { ComponentBuilder } from '../Component';\nimport { filePredicate, spoilerPredicate } from './Assertions';\n\nexport class FileBuilder extends ComponentBuilder {\n\t/**\n\t * Creates a new file from API data.\n\t *\n\t * @param data - The API data to create this file with\n\t * @example\n\t * Creating a file from an API data object:\n\t * ```ts\n\t * const file = new FileBuilder({\n\t * \tspoiler: true,\n\t * \tfile: {\n\t * \t\turl: 'attachment://file.png',\n\t * \t},\n\t * });\n\t * ```\n\t * @example\n\t * Creating a file using setters and API data:\n\t * ```ts\n\t * const file = new FileBuilder({\n\t * \tfile: {\n\t * \t\turl: 'attachment://image.jpg',\n\t * \t},\n\t * })\n\t * \t.setSpoiler(false);\n\t * ```\n\t */\n\tpublic constructor(data: Partial = {}) {\n\t\tsuper({ type: ComponentType.File, ...data, file: data.file ? { url: data.file.url } : undefined });\n\t}\n\n\t/**\n\t * Sets the spoiler status of this file.\n\t *\n\t * @param spoiler - The spoiler status to use\n\t */\n\tpublic setSpoiler(spoiler = true) {\n\t\tthis.data.spoiler = spoilerPredicate.parse(spoiler);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the media URL of this file.\n\t *\n\t * @param url - The URL to use\n\t */\n\tpublic setURL(url: string) {\n\t\tthis.data.file = filePredicate.parse({ url });\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic override toJSON(): APIFileComponent {\n\t\tfilePredicate.parse(this.data.file);\n\n\t\treturn { ...this.data, file: { ...this.data.file } } as APIFileComponent;\n\t}\n}\n","import type { SeparatorSpacingSize, APISeparatorComponent } from 'discord-api-types/v10';\nimport { ComponentType } from 'discord-api-types/v10';\nimport { ComponentBuilder } from '../Component';\nimport { dividerPredicate, spacingPredicate } from './Assertions';\n\nexport class SeparatorBuilder extends ComponentBuilder {\n\t/**\n\t * Creates a new separator from API data.\n\t *\n\t * @param data - The API data to create this separator with\n\t * @example\n\t * Creating a separator from an API data object:\n\t * ```ts\n\t * const separator = new SeparatorBuilder({\n\t * \tspacing: SeparatorSpacingSize.Small,\n\t * divider: true,\n\t * });\n\t * ```\n\t * @example\n\t * Creating a separator using setters and API data:\n\t * ```ts\n\t * const separator = new SeparatorBuilder({\n\t * \tspacing: SeparatorSpacingSize.Large,\n\t * })\n\t * \t.setDivider(false);\n\t * ```\n\t */\n\tpublic constructor(data: Partial = {}) {\n\t\tsuper({\n\t\t\ttype: ComponentType.Separator,\n\t\t\t...data,\n\t\t});\n\t}\n\n\t/**\n\t * Sets whether this separator should show a divider line.\n\t *\n\t * @param divider - Whether to show a divider line\n\t */\n\tpublic setDivider(divider = true) {\n\t\tthis.data.divider = dividerPredicate.parse(divider);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the spacing of this separator.\n\t *\n\t * @param spacing - The spacing to use\n\t */\n\tpublic setSpacing(spacing: SeparatorSpacingSize) {\n\t\tthis.data.spacing = spacingPredicate.parse(spacing);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Clears the spacing of this separator.\n\t */\n\tpublic clearSpacing() {\n\t\tthis.data.spacing = undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic override toJSON(): APISeparatorComponent {\n\t\treturn { ...this.data } as APISeparatorComponent;\n\t}\n}\n","import type { APITextDisplayComponent } from 'discord-api-types/v10';\nimport { ComponentType } from 'discord-api-types/v10';\nimport { ComponentBuilder } from '../Component';\nimport { textDisplayContentPredicate } from './Assertions';\n\nexport class TextDisplayBuilder extends ComponentBuilder {\n\t/**\n\t * Creates a new text display from API data.\n\t *\n\t * @param data - The API data to create this text display with\n\t * @example\n\t * Creating a text display from an API data object:\n\t * ```ts\n\t * const textDisplay = new TextDisplayBuilder({\n\t * \tcontent: 'some text',\n\t * });\n\t * ```\n\t * @example\n\t * Creating a text display using setters and API data:\n\t * ```ts\n\t * const textDisplay = new TextDisplayBuilder({\n\t * \tcontent: 'old text',\n\t * })\n\t * \t.setContent('new text');\n\t * ```\n\t */\n\tpublic constructor(data: Partial = {}) {\n\t\tsuper({\n\t\t\ttype: ComponentType.TextDisplay,\n\t\t\t...data,\n\t\t});\n\t}\n\n\t/**\n\t * Sets the text of this text display.\n\t *\n\t * @param content - The text to use\n\t */\n\tpublic setContent(content: string) {\n\t\tthis.data.content = textDisplayContentPredicate.parse(content);\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic override toJSON(): APITextDisplayComponent {\n\t\ttextDisplayContentPredicate.parse(this.data.content);\n\n\t\treturn { ...this.data } as APITextDisplayComponent;\n\t}\n}\n","/* eslint-disable jsdoc/check-param-names */\n\nimport type { APIMediaGalleryComponent, APIMediaGalleryItem } from 'discord-api-types/v10';\nimport { ComponentType } from 'discord-api-types/v10';\nimport { normalizeArray, type RestOrArray } from '../../util/normalizeArray.js';\nimport { ComponentBuilder } from '../Component.js';\nimport { resolveBuilder } from '../Components.js';\nimport { assertReturnOfBuilder, validateComponentArray } from './Assertions.js';\nimport { MediaGalleryItemBuilder } from './MediaGalleryItem.js';\n\n/**\n * A builder that creates API-compatible JSON data for a container.\n */\nexport class MediaGalleryBuilder extends ComponentBuilder {\n\t/**\n\t * The components within this container.\n\t */\n\tpublic readonly items: MediaGalleryItemBuilder[];\n\n\t/**\n\t * Creates a new media gallery from API data.\n\t *\n\t * @param data - The API data to create this media gallery with\n\t * @example\n\t * Creating a media gallery from an API data object:\n\t * ```ts\n\t * const mediaGallery = new MediaGalleryBuilder({\n\t * \titems: [\n\t * \t\t{\n\t * \t\t\tdescription: \"Some text here\",\n\t * \t\t\tmedia: {\n\t * \t\t\t\turl: 'https://cdn.discordapp.com/embed/avatars/2.png',\n\t * \t\t\t},\n\t * \t\t},\n\t * \t],\n\t * });\n\t * ```\n\t * @example\n\t * Creating a media gallery using setters and API data:\n\t * ```ts\n\t * const mediaGallery = new MediaGalleryBuilder({\n\t * \titems: [\n\t * \t\t{\n\t * \t\t\tdescription: \"alt text\",\n\t * \t\t\tmedia: {\n\t * \t\t\t\turl: 'https://cdn.discordapp.com/embed/avatars/5.png',\n\t * \t\t\t},\n\t * \t\t},\n\t * \t],\n\t * })\n\t * \t.addItems(item2, item3);\n\t * ```\n\t */\n\tpublic constructor({ items, ...data }: Partial = {}) {\n\t\tsuper({ type: ComponentType.MediaGallery, ...data });\n\t\tthis.items = items?.map((item) => new MediaGalleryItemBuilder(item)) ?? [];\n\t}\n\n\t/**\n\t * Adds items to this media gallery.\n\t *\n\t * @param items - The items to add\n\t */\n\tpublic addItems(\n\t\t...items: RestOrArray<\n\t\t\tAPIMediaGalleryItem | MediaGalleryItemBuilder | ((builder: MediaGalleryItemBuilder) => MediaGalleryItemBuilder)\n\t\t>\n\t) {\n\t\tthis.items.push(\n\t\t\t...normalizeArray(items).map((input) => {\n\t\t\t\tconst result = resolveBuilder(input, MediaGalleryItemBuilder);\n\n\t\t\t\tassertReturnOfBuilder(result, MediaGalleryItemBuilder);\n\t\t\t\treturn result;\n\t\t\t}),\n\t\t);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Removes, replaces, or inserts media gallery items for this media gallery.\n\t *\n\t * @param index - The index to start removing, replacing or inserting items\n\t * @param deleteCount - The amount of items to remove\n\t * @param items - The items to insert\n\t */\n\tpublic spliceItems(\n\t\tindex: number,\n\t\tdeleteCount: number,\n\t\t...items: RestOrArray<\n\t\t\tAPIMediaGalleryItem | MediaGalleryItemBuilder | ((builder: MediaGalleryItemBuilder) => MediaGalleryItemBuilder)\n\t\t>\n\t) {\n\t\tthis.items.splice(\n\t\t\tindex,\n\t\t\tdeleteCount,\n\t\t\t...normalizeArray(items).map((input) => {\n\t\t\t\tconst result = resolveBuilder(input, MediaGalleryItemBuilder);\n\n\t\t\t\tassertReturnOfBuilder(result, MediaGalleryItemBuilder);\n\t\t\t\treturn result;\n\t\t\t}),\n\t\t);\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic toJSON(): APIMediaGalleryComponent {\n\t\tvalidateComponentArray(this.items, 1, 10, MediaGalleryItemBuilder);\n\t\treturn {\n\t\t\t...this.data,\n\t\t\titems: this.items.map((item) => item.toJSON()),\n\t\t} as APIMediaGalleryComponent;\n\t}\n}\n","import type { JSONEncodable } from '@discordjs/util';\nimport type { APIMediaGalleryItem } from 'discord-api-types/v10';\nimport { descriptionPredicate, spoilerPredicate, unfurledMediaItemPredicate } from './Assertions';\n\nexport class MediaGalleryItemBuilder implements JSONEncodable {\n\t/**\n\t * The API data associated with this media gallery item.\n\t */\n\tpublic readonly data: Partial;\n\n\t/**\n\t * Creates a new media gallery item from API data.\n\t *\n\t * @param data - The API data to create this media gallery item with\n\t * @example\n\t * Creating a media gallery item from an API data object:\n\t * ```ts\n\t * const item = new MediaGalleryItemBuilder({\n\t * \tdescription: \"Some text here\",\n\t * \tmedia: {\n\t * \t\turl: 'https://cdn.discordapp.com/embed/avatars/2.png',\n\t * \t},\n\t * });\n\t * ```\n\t * @example\n\t * Creating a media gallery item using setters and API data:\n\t * ```ts\n\t * const item = new MediaGalleryItemBuilder({\n\t * \tmedia: {\n\t * \t\turl: 'https://cdn.discordapp.com/embed/avatars/5.png',\n\t * \t},\n\t * })\n\t * \t.setDescription(\"alt text\");\n\t * ```\n\t */\n\tpublic constructor(data: Partial = {}) {\n\t\tthis.data = data;\n\t}\n\n\t/**\n\t * Sets the description of this media gallery item.\n\t *\n\t * @param description - The description to use\n\t */\n\tpublic setDescription(description: string) {\n\t\tthis.data.description = descriptionPredicate.parse(description);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Clears the description of this media gallery item.\n\t */\n\tpublic clearDescription() {\n\t\tthis.data.description = undefined;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the spoiler status of this media gallery item.\n\t *\n\t * @param spoiler - The spoiler status to use\n\t */\n\tpublic setSpoiler(spoiler = true) {\n\t\tthis.data.spoiler = spoilerPredicate.parse(spoiler);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the media URL of this media gallery item.\n\t *\n\t * @param url - The URL to use\n\t */\n\tpublic setURL(url: string) {\n\t\tthis.data.media = unfurledMediaItemPredicate.parse({ url });\n\t\treturn this;\n\t}\n\n\t/**\n\t * Serializes this builder to API-compatible JSON data.\n\t *\n\t * @remarks\n\t * This method runs validations on the data before serializing it.\n\t * As such, it may throw an error if the data is invalid.\n\t */\n\tpublic toJSON(): APIMediaGalleryItem {\n\t\tunfurledMediaItemPredicate.parse(this.data.media);\n\n\t\treturn { ...this.data } as APIMediaGalleryItem;\n\t}\n}\n","/* eslint-disable jsdoc/check-param-names */\n\nimport type {\n\tAPIButtonComponent,\n\tAPISectionComponent,\n\tAPITextDisplayComponent,\n\tAPIThumbnailComponent,\n} from 'discord-api-types/v10';\nimport { ComponentType } from 'discord-api-types/v10';\nimport { ButtonBuilder, ThumbnailBuilder } from '../../index.js';\nimport { normalizeArray, type RestOrArray } from '../../util/normalizeArray.js';\nimport { ComponentBuilder } from '../Component.js';\nimport { createComponentBuilder, resolveBuilder } from '../Components.js';\nimport { accessoryPredicate, assertReturnOfBuilder, validateComponentArray } from './Assertions.js';\nimport { TextDisplayBuilder } from './TextDisplay.js';\n\n/**\n * A builder that creates API-compatible JSON data for a section.\n */\nexport class SectionBuilder extends ComponentBuilder {\n\t/**\n\t * The components within this section.\n\t */\n\tpublic readonly components: ComponentBuilder[];\n\n\t/**\n\t * The accessory of this section.\n\t */\n\tpublic readonly accessory?: ButtonBuilder | ThumbnailBuilder;\n\n\t/**\n\t * Creates a new section from API data.\n\t *\n\t * @param data - The API data to create this section with\n\t * @example\n\t * Creating a section from an API data object:\n\t * ```ts\n\t * const section = new SectionBuilder({\n\t * \tcomponents: [\n\t * \t\t{\n\t * \t\t\tcontent: \"Some text here\",\n\t * \t\t\ttype: ComponentType.TextDisplay,\n\t * \t\t},\n\t * \t],\n\t * accessory: {\n\t * media: {\n\t * url: 'https://cdn.discordapp.com/embed/avatars/3.png',\n\t * },\n\t * }\n\t * });\n\t * ```\n\t * @example\n\t * Creating a section using setters and API data:\n\t * ```ts\n\t * const section = new SectionBuilder({\n\t * \tcomponents: [\n\t * \t\t{\n\t * \t\t\tcontent: \"# Heading\",\n\t * \t\t\ttype: ComponentType.TextDisplay,\n\t * \t\t},\n\t * \t],\n\t * })\n\t * \t.setPrimaryButtonAccessory(button);\n\t * ```\n\t */\n\tpublic constructor({ components, accessory, ...data }: Partial = {}) {\n\t\tsuper({ type: ComponentType.Section, ...data });\n\t\tthis.components = (components?.map((component) => createComponentBuilder(component)) ?? []) as ComponentBuilder[];\n\t\tthis.accessory = accessory ? createComponentBuilder(accessory) : undefined;\n\t}\n\n\t/**\n\t * Sets the accessory of this section to a button.\n\t *\n\t * @param accessory - The accessory to use\n\t */\n\tpublic setButtonAccessory(\n\t\taccessory: APIButtonComponent | ButtonBuilder | ((builder: ButtonBuilder) => ButtonBuilder),\n\t): this {\n\t\tReflect.set(this, 'accessory', accessoryPredicate.parse(resolveBuilder(accessory, ButtonBuilder)));\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the accessory of this section to a thumbnail.\n\t *\n\t * @param accessory - The accessory to use\n\t */\n\tpublic setThumbnailAccessory(\n\t\taccessory: APIThumbnailComponent | ThumbnailBuilder | ((builder: ThumbnailBuilder) => ThumbnailBuilder),\n\t): this {\n\t\tReflect.set(this, 'accessory', accessoryPredicate.parse(resolveBuilder(accessory, ThumbnailBuilder)));\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds text display components to this section.\n\t *\n\t * @param components - The text display components to add\n\t */\n\tpublic addTextDisplayComponents(\n\t\t...components: RestOrArray TextDisplayBuilder)>\n\t) {\n\t\tthis.components.push(\n\t\t\t...normalizeArray(components).map((input) => {\n\t\t\t\tconst result = resolveBuilder(input, TextDisplayBuilder);\n\n\t\t\t\tassertReturnOfBuilder(result, TextDisplayBuilder);\n\t\t\t\treturn result;\n\t\t\t}),\n\t\t);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Removes, replaces, or inserts text display components for this section.\n\t *\n\t * @param index - The index to start removing, replacing or inserting text display components\n\t * @param deleteCount - The amount of text display components to remove\n\t * @param components - The text display components to insert\n\t */\n\tpublic spliceTextDisplayComponents(\n\t\tindex: number,\n\t\tdeleteCount: number,\n\t\t...components: RestOrArray<\n\t\t\tAPITextDisplayComponent | TextDisplayBuilder | ((builder: TextDisplayBuilder) => TextDisplayBuilder)\n\t\t>\n\t) {\n\t\tthis.components.splice(\n\t\t\tindex,\n\t\t\tdeleteCount,\n\t\t\t...normalizeArray(components).map((input) => {\n\t\t\t\tconst result = resolveBuilder(input, TextDisplayBuilder);\n\n\t\t\t\tassertReturnOfBuilder(result, TextDisplayBuilder);\n\t\t\t\treturn result;\n\t\t\t}),\n\t\t);\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic toJSON(): APISectionComponent {\n\t\tvalidateComponentArray(this.components, 1, 3, TextDisplayBuilder);\n\t\treturn {\n\t\t\t...this.data,\n\t\t\tcomponents: this.components.map((component) => component.toJSON()),\n\t\t\taccessory: accessoryPredicate.parse(this.accessory).toJSON(),\n\t\t} as APISectionComponent;\n\t}\n}\n","/* eslint-disable jsdoc/check-param-names */\n\nimport type { JSONEncodable } from '@discordjs/util';\nimport type {\n\tAPITextInputComponent,\n\tAPIActionRowComponent,\n\tAPIComponentInModalActionRow,\n\tAPILabelComponent,\n\tAPIModalInteractionResponseCallbackData,\n\tAPITextDisplayComponent,\n} from 'discord-api-types/v10';\nimport { ComponentType } from 'discord-api-types/v10';\nimport { ActionRowBuilder, type ModalActionRowComponentBuilder } from '../../components/ActionRow.js';\nimport { customIdValidator } from '../../components/Assertions.js';\nimport { createComponentBuilder, resolveBuilder } from '../../components/Components.js';\nimport { LabelBuilder } from '../../components/label/Label.js';\nimport { TextInputBuilder } from '../../components/textInput/TextInput.js';\nimport { TextDisplayBuilder } from '../../components/v2/TextDisplay.js';\nimport { normalizeArray, type RestOrArray } from '../../util/normalizeArray.js';\nimport { titleValidator, validateRequiredParameters } from './Assertions.js';\n\n/**\n * A builder that creates API-compatible JSON data for modals.\n */\nexport class ModalBuilder implements JSONEncodable {\n\t/**\n\t * The API data associated with this modal.\n\t */\n\tpublic readonly data: Partial;\n\n\t/**\n\t * The components within this modal.\n\t */\n\tpublic readonly components: (ActionRowBuilder | LabelBuilder | TextDisplayBuilder)[] =\n\t\t[];\n\n\t/**\n\t * Creates a new modal from API data.\n\t *\n\t * @param data - The API data to create this modal with\n\t */\n\tpublic constructor({ components, ...data }: Partial = {}) {\n\t\tthis.data = { ...data };\n\t\tthis.components = (components?.map((component) => createComponentBuilder(component)) ?? []) as (\n\t\t\t| ActionRowBuilder\n\t\t\t| LabelBuilder\n\t\t)[];\n\t}\n\n\t/**\n\t * Sets the title of this modal.\n\t *\n\t * @param title - The title to use\n\t */\n\tpublic setTitle(title: string) {\n\t\tthis.data.title = titleValidator.parse(title);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the custom id of this modal.\n\t *\n\t * @param customId - The custom id to use\n\t */\n\tpublic setCustomId(customId: string) {\n\t\tthis.data.custom_id = customIdValidator.parse(customId);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds components to this modal.\n\t *\n\t * @param components - The components to add\n\t * @deprecated Use {@link ModalBuilder.addLabelComponents} or {@link ModalBuilder.addTextDisplayComponents} instead\n\t */\n\tpublic addComponents(\n\t\t...components: RestOrArray<\n\t\t\t| ActionRowBuilder\n\t\t\t| APIActionRowComponent\n\t\t\t| APILabelComponent\n\t\t\t| APITextDisplayComponent\n\t\t\t| APITextInputComponent\n\t\t\t| LabelBuilder\n\t\t\t| TextDisplayBuilder\n\t\t\t| TextInputBuilder\n\t\t>\n\t) {\n\t\tthis.components.push(\n\t\t\t...normalizeArray(components).map((component, idx) => {\n\t\t\t\tif (\n\t\t\t\t\tcomponent instanceof ActionRowBuilder ||\n\t\t\t\t\tcomponent instanceof LabelBuilder ||\n\t\t\t\t\tcomponent instanceof TextDisplayBuilder\n\t\t\t\t) {\n\t\t\t\t\treturn component;\n\t\t\t\t}\n\n\t\t\t\t// Deprecated support\n\t\t\t\tif (component instanceof TextInputBuilder) {\n\t\t\t\t\treturn new ActionRowBuilder().addComponents(component);\n\t\t\t\t}\n\n\t\t\t\tif ('type' in component) {\n\t\t\t\t\tif (component.type === ComponentType.ActionRow) {\n\t\t\t\t\t\treturn new ActionRowBuilder(component);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (component.type === ComponentType.Label) {\n\t\t\t\t\t\treturn new LabelBuilder(component);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (component.type === ComponentType.TextDisplay) {\n\t\t\t\t\t\treturn new TextDisplayBuilder(component);\n\t\t\t\t\t}\n\n\t\t\t\t\t// Deprecated, should go in a label component\n\t\t\t\t\tif (component.type === ComponentType.TextInput) {\n\t\t\t\t\t\treturn new ActionRowBuilder().addComponents(\n\t\t\t\t\t\t\tnew TextInputBuilder(component),\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tthrow new TypeError(`Invalid component passed in ModalBuilder.addComponents at index ${idx}!`);\n\t\t\t}),\n\t\t);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds label components to this modal.\n\t *\n\t * @param components - The components to add\n\t */\n\tpublic addLabelComponents(\n\t\t...components: RestOrArray LabelBuilder)>\n\t) {\n\t\tconst normalized = normalizeArray(components);\n\t\tconst resolved = normalized.map((label) => resolveBuilder(label, LabelBuilder));\n\n\t\tthis.components.push(...resolved);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds text display components to this modal.\n\t *\n\t * @param components - The components to add\n\t */\n\tpublic addTextDisplayComponents(\n\t\t...components: RestOrArray<\n\t\t\tAPITextDisplayComponent | TextDisplayBuilder | ((builder: TextDisplayBuilder) => TextDisplayBuilder)\n\t\t>\n\t) {\n\t\tconst normalized = normalizeArray(components);\n\t\tconst resolved = normalized.map((row) => resolveBuilder(row, TextDisplayBuilder));\n\n\t\tthis.components.push(...resolved);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds action rows to this modal.\n\t *\n\t * @param components - The components to add\n\t * @deprecated Use {@link ModalBuilder.addLabelComponents} instead\n\t */\n\tpublic addActionRowComponents(\n\t\t...components: RestOrArray<\n\t\t\t| ActionRowBuilder\n\t\t\t| APIActionRowComponent\n\t\t\t| ((\n\t\t\t\t\tbuilder: ActionRowBuilder,\n\t\t\t ) => ActionRowBuilder)\n\t\t>\n\t) {\n\t\tconst normalized = normalizeArray(components);\n\t\tconst resolved = normalized.map((row) => resolveBuilder(row, ActionRowBuilder));\n\n\t\tthis.components.push(...resolved);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the labels for this modal.\n\t *\n\t * @param components - The components to set\n\t */\n\tpublic setLabelComponents(\n\t\t...components: RestOrArray LabelBuilder)>\n\t) {\n\t\tconst normalized = normalizeArray(components);\n\t\tthis.spliceLabelComponents(0, this.components.length, ...normalized);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Removes, replaces, or inserts labels for this modal.\n\t *\n\t * @remarks\n\t * This method behaves similarly\n\t * to {@link https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/splice | Array.prototype.splice()}.\n\t * The maximum amount of labels that can be added is 5.\n\t *\n\t * It's useful for modifying and adjusting order of the already-existing labels of a modal.\n\t * @example\n\t * Remove the first label:\n\t * ```ts\n\t * modal.spliceLabelComponents(0, 1);\n\t * ```\n\t * @example\n\t * Remove the first n labels:\n\t * ```ts\n\t * const n = 4;\n\t * modal.spliceLabelComponents(0, n);\n\t * ```\n\t * @example\n\t * Remove the last label:\n\t * ```ts\n\t * modal.spliceLabelComponents(-1, 1);\n\t * ```\n\t * @param index - The index to start at\n\t * @param deleteCount - The number of labels to remove\n\t * @param labels - The replacing label objects\n\t */\n\tpublic spliceLabelComponents(\n\t\tindex: number,\n\t\tdeleteCount: number,\n\t\t...labels: (APILabelComponent | LabelBuilder | ((builder: LabelBuilder) => LabelBuilder))[]\n\t): this {\n\t\tconst resolved = labels.map((label) => resolveBuilder(label, LabelBuilder));\n\t\tthis.components.splice(index, deleteCount, ...resolved);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets components for this modal.\n\t *\n\t * @param components - The components to set\n\t * @deprecated Use {@link ModalBuilder.setLabelComponents} instead\n\t */\n\tpublic setComponents(\n\t\t...components: RestOrArray | LabelBuilder | TextDisplayBuilder>\n\t) {\n\t\tthis.components.splice(0, this.components.length, ...normalizeArray(components));\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ComponentBuilder.toJSON}\n\t */\n\tpublic toJSON(): APIModalInteractionResponseCallbackData {\n\t\tvalidateRequiredParameters(this.data.custom_id, this.data.title, this.components);\n\n\t\treturn {\n\t\t\t...this.data,\n\t\t\tcomponents: this.components.map((component) => component.toJSON()),\n\t\t} as APIModalInteractionResponseCallbackData;\n\t}\n}\n","import { s } from '@sapphire/shapeshift';\nimport { ActionRowBuilder, type ModalActionRowComponentBuilder } from '../../components/ActionRow.js';\nimport { customIdValidator } from '../../components/Assertions.js';\nimport { LabelBuilder } from '../../components/label/Label.js';\nimport { TextDisplayBuilder } from '../../components/v2/TextDisplay.js';\nimport { isValidationEnabled } from '../../util/validation.js';\n\nexport const titleValidator = s\n\t.string()\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(45)\n\t.setValidationEnabled(isValidationEnabled);\nexport const componentsValidator = s\n\t.union([s.instance(ActionRowBuilder), s.instance(LabelBuilder), s.instance(TextDisplayBuilder)])\n\t.array()\n\t.lengthGreaterThanOrEqual(1)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport function validateRequiredParameters(\n\tcustomId?: string,\n\ttitle?: string,\n\tcomponents?: (ActionRowBuilder | LabelBuilder | TextDisplayBuilder)[],\n) {\n\tcustomIdValidator.parse(customId);\n\ttitleValidator.parse(title);\n\tcomponentsValidator.parse(components);\n}\n","import { s } from '@sapphire/shapeshift';\nimport {\n\tApplicationIntegrationType,\n\tInteractionContextType,\n\tLocale,\n\ttype APIApplicationCommandOptionChoice,\n\ttype LocalizationMap,\n} from 'discord-api-types/v10';\nimport { isValidationEnabled } from '../../util/validation.js';\nimport type { ToAPIApplicationCommandOptions } from './SlashCommandBuilder.js';\nimport type { SlashCommandSubcommandBuilder, SlashCommandSubcommandGroupBuilder } from './SlashCommandSubcommands.js';\nimport type { ApplicationCommandOptionBase } from './mixins/ApplicationCommandOptionBase.js';\n\nconst namePredicate = s\n\t.string()\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(32)\n\t.regex(/^[\\p{Ll}\\p{Lm}\\p{Lo}\\p{N}\\p{sc=Devanagari}\\p{sc=Thai}_-]+$/u)\n\t.setValidationEnabled(isValidationEnabled);\n\nexport function validateName(name: unknown): asserts name is string {\n\tnamePredicate.parse(name);\n}\n\nconst descriptionPredicate = s\n\t.string()\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(100)\n\t.setValidationEnabled(isValidationEnabled);\nconst localePredicate = s.nativeEnum(Locale);\n\nexport function validateDescription(description: unknown): asserts description is string {\n\tdescriptionPredicate.parse(description);\n}\n\nconst maxArrayLengthPredicate = s.unknown().array().lengthLessThanOrEqual(25).setValidationEnabled(isValidationEnabled);\nexport function validateLocale(locale: unknown) {\n\treturn localePredicate.parse(locale);\n}\n\nexport function validateMaxOptionsLength(options: unknown): asserts options is ToAPIApplicationCommandOptions[] {\n\tmaxArrayLengthPredicate.parse(options);\n}\n\nexport function validateRequiredParameters(\n\tname: string,\n\tdescription: string,\n\toptions: ToAPIApplicationCommandOptions[],\n) {\n\t// Assert name matches all conditions\n\tvalidateName(name);\n\n\t// Assert description conditions\n\tvalidateDescription(description);\n\n\t// Assert options conditions\n\tvalidateMaxOptionsLength(options);\n}\n\nconst booleanPredicate = s.boolean();\n\nexport function validateDefaultPermission(value: unknown): asserts value is boolean {\n\tbooleanPredicate.parse(value);\n}\n\nexport function validateRequired(required: unknown): asserts required is boolean {\n\tbooleanPredicate.parse(required);\n}\n\nconst choicesLengthPredicate = s.number().lessThanOrEqual(25).setValidationEnabled(isValidationEnabled);\n\nexport function validateChoicesLength(amountAdding: number, choices?: APIApplicationCommandOptionChoice[]): void {\n\tchoicesLengthPredicate.parse((choices?.length ?? 0) + amountAdding);\n}\n\nexport function assertReturnOfBuilder<\n\tReturnType extends ApplicationCommandOptionBase | SlashCommandSubcommandBuilder | SlashCommandSubcommandGroupBuilder,\n>(input: unknown, ExpectedInstanceOf: new () => ReturnType): asserts input is ReturnType {\n\ts.instance(ExpectedInstanceOf).parse(input);\n}\n\nexport const localizationMapPredicate = s\n\t.object(Object.fromEntries(Object.values(Locale).map((locale) => [locale, s.string().nullish()])))\n\t.strict()\n\t.nullish()\n\t.setValidationEnabled(isValidationEnabled);\n\nexport function validateLocalizationMap(value: unknown): asserts value is LocalizationMap {\n\tlocalizationMapPredicate.parse(value);\n}\n\nconst dmPermissionPredicate = s.boolean().nullish();\n\nexport function validateDMPermission(value: unknown): asserts value is boolean | null | undefined {\n\tdmPermissionPredicate.parse(value);\n}\n\nconst memberPermissionPredicate = s\n\t.union([\n\t\ts.bigint().transform((value) => value.toString()),\n\t\ts\n\t\t\t.number()\n\t\t\t.safeInt()\n\t\t\t.transform((value) => value.toString()),\n\t\ts.string().regex(/^\\d+$/),\n\t])\n\t.nullish();\n\nexport function validateDefaultMemberPermissions(permissions: unknown) {\n\treturn memberPermissionPredicate.parse(permissions);\n}\n\nexport function validateNSFW(value: unknown): asserts value is boolean {\n\tbooleanPredicate.parse(value);\n}\n\nexport const contextsPredicate = s.array(\n\ts.nativeEnum(InteractionContextType).setValidationEnabled(isValidationEnabled),\n);\n\nexport const integrationTypesPredicate = s.array(\n\ts.nativeEnum(ApplicationIntegrationType).setValidationEnabled(isValidationEnabled),\n);\n","import type {\n\tAPIApplicationCommandOption,\n\tApplicationIntegrationType,\n\tInteractionContextType,\n\tLocalizationMap,\n\tPermissions,\n} from 'discord-api-types/v10';\nimport { mix } from 'ts-mixer';\nimport { SharedNameAndDescription } from './mixins/NameAndDescription.js';\nimport { SharedSlashCommand } from './mixins/SharedSlashCommand.js';\nimport { SharedSlashCommandOptions } from './mixins/SharedSlashCommandOptions.js';\nimport { SharedSlashCommandSubcommands } from './mixins/SharedSubcommands.js';\n\n/**\n * A builder that creates API-compatible JSON data for slash commands.\n */\n@mix(SharedSlashCommandOptions, SharedNameAndDescription, SharedSlashCommandSubcommands, SharedSlashCommand)\nexport class SlashCommandBuilder {\n\t/**\n\t * The name of this command.\n\t */\n\tpublic readonly name: string = undefined!;\n\n\t/**\n\t * The name localizations of this command.\n\t */\n\tpublic readonly name_localizations?: LocalizationMap;\n\n\t/**\n\t * The description of this command.\n\t */\n\tpublic readonly description: string = undefined!;\n\n\t/**\n\t * The description localizations of this command.\n\t */\n\tpublic readonly description_localizations?: LocalizationMap;\n\n\t/**\n\t * The options of this command.\n\t */\n\tpublic readonly options: ToAPIApplicationCommandOptions[] = [];\n\n\t/**\n\t * The contexts for this command.\n\t */\n\tpublic readonly contexts?: InteractionContextType[];\n\n\t/**\n\t * Whether this command is enabled by default when the application is added to a guild.\n\t *\n\t * @deprecated Use {@link SharedSlashCommand.setDefaultMemberPermissions} or {@link SharedSlashCommand.setDMPermission} instead.\n\t */\n\tpublic readonly default_permission: boolean | undefined = undefined;\n\n\t/**\n\t * The set of permissions represented as a bit set for the command.\n\t */\n\tpublic readonly default_member_permissions: Permissions | null | undefined = undefined;\n\n\t/**\n\t * Indicates whether the command is available in direct messages with the application.\n\t *\n\t * @remarks\n\t * By default, commands are visible. This property is only for global commands.\n\t * @deprecated\n\t * Use {@link SlashCommandBuilder.contexts} instead.\n\t */\n\tpublic readonly dm_permission: boolean | undefined = undefined;\n\n\t/**\n\t * The integration types for this command.\n\t */\n\tpublic readonly integration_types?: ApplicationIntegrationType[];\n\n\t/**\n\t * Whether this command is NSFW.\n\t */\n\tpublic readonly nsfw: boolean | undefined = undefined;\n}\n\nexport interface SlashCommandBuilder\n\textends\n\t\tSharedNameAndDescription,\n\t\tSharedSlashCommandOptions,\n\t\tSharedSlashCommandSubcommands,\n\t\tSharedSlashCommand {}\n\n/**\n * An interface specifically for slash command subcommands.\n */\nexport interface SlashCommandSubcommandsOnlyBuilder\n\textends\n\t\tSharedNameAndDescription,\n\t\tSharedSlashCommandSubcommands,\n\t\tSharedSlashCommand {}\n\n/**\n * An interface specifically for slash command options.\n */\nexport interface SlashCommandOptionsOnlyBuilder\n\textends SharedNameAndDescription, SharedSlashCommandOptions, SharedSlashCommand {}\n\n/**\n * An interface that ensures the `toJSON()` call will return something\n * that can be serialized into API-compatible data.\n */\nexport interface ToAPIApplicationCommandOptions {\n\ttoJSON(): APIApplicationCommandOption;\n}\n","import type { LocaleString, LocalizationMap } from 'discord-api-types/v10';\nimport { validateDescription, validateLocale, validateName } from '../Assertions.js';\n\n/**\n * This mixin holds name and description symbols for slash commands.\n */\nexport class SharedNameAndDescription {\n\t/**\n\t * The name of this command.\n\t */\n\tpublic readonly name!: string;\n\n\t/**\n\t * The name localizations of this command.\n\t */\n\tpublic readonly name_localizations?: LocalizationMap;\n\n\t/**\n\t * The description of this command.\n\t */\n\tpublic readonly description!: string;\n\n\t/**\n\t * The description localizations of this command.\n\t */\n\tpublic readonly description_localizations?: LocalizationMap;\n\n\t/**\n\t * Sets the name of this command.\n\t *\n\t * @param name - The name to use\n\t */\n\tpublic setName(name: string): this {\n\t\t// Assert the name matches the conditions\n\t\tvalidateName(name);\n\n\t\tReflect.set(this, 'name', name);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the description of this command.\n\t *\n\t * @param description - The description to use\n\t */\n\tpublic setDescription(description: string) {\n\t\t// Assert the description matches the conditions\n\t\tvalidateDescription(description);\n\n\t\tReflect.set(this, 'description', description);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets a name localization for this command.\n\t *\n\t * @param locale - The locale to set\n\t * @param localizedName - The localized name for the given `locale`\n\t */\n\tpublic setNameLocalization(locale: LocaleString, localizedName: string | null) {\n\t\tif (!this.name_localizations) {\n\t\t\tReflect.set(this, 'name_localizations', {});\n\t\t}\n\n\t\tconst parsedLocale = validateLocale(locale);\n\n\t\tif (localizedName === null) {\n\t\t\tthis.name_localizations![parsedLocale] = null;\n\t\t\treturn this;\n\t\t}\n\n\t\tvalidateName(localizedName);\n\n\t\tthis.name_localizations![parsedLocale] = localizedName;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the name localizations for this command.\n\t *\n\t * @param localizedNames - The object of localized names to set\n\t */\n\tpublic setNameLocalizations(localizedNames: LocalizationMap | null) {\n\t\tif (localizedNames === null) {\n\t\t\tReflect.set(this, 'name_localizations', null);\n\t\t\treturn this;\n\t\t}\n\n\t\tReflect.set(this, 'name_localizations', {});\n\n\t\tfor (const args of Object.entries(localizedNames)) {\n\t\t\tthis.setNameLocalization(...(args as [LocaleString, string | null]));\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets a description localization for this command.\n\t *\n\t * @param locale - The locale to set\n\t * @param localizedDescription - The localized description for the given locale\n\t */\n\tpublic setDescriptionLocalization(locale: LocaleString, localizedDescription: string | null) {\n\t\tif (!this.description_localizations) {\n\t\t\tReflect.set(this, 'description_localizations', {});\n\t\t}\n\n\t\tconst parsedLocale = validateLocale(locale);\n\n\t\tif (localizedDescription === null) {\n\t\t\tthis.description_localizations![parsedLocale] = null;\n\t\t\treturn this;\n\t\t}\n\n\t\tvalidateDescription(localizedDescription);\n\n\t\tthis.description_localizations![parsedLocale] = localizedDescription;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the description localizations for this command.\n\t *\n\t * @param localizedDescriptions - The object of localized descriptions to set\n\t */\n\tpublic setDescriptionLocalizations(localizedDescriptions: LocalizationMap | null) {\n\t\tif (localizedDescriptions === null) {\n\t\t\tReflect.set(this, 'description_localizations', null);\n\t\t\treturn this;\n\t\t}\n\n\t\tReflect.set(this, 'description_localizations', {});\n\t\tfor (const args of Object.entries(localizedDescriptions)) {\n\t\t\tthis.setDescriptionLocalization(...(args as [LocaleString, string | null]));\n\t\t}\n\n\t\treturn this;\n\t}\n}\n","import {\n\tApplicationCommandType,\n\ttype ApplicationIntegrationType,\n\ttype InteractionContextType,\n\ttype LocalizationMap,\n\ttype Permissions,\n\ttype RESTPostAPIChatInputApplicationCommandsJSONBody,\n} from 'discord-api-types/v10';\nimport type { RestOrArray } from '../../../util/normalizeArray.js';\nimport { normalizeArray } from '../../../util/normalizeArray.js';\nimport {\n\tcontextsPredicate,\n\tintegrationTypesPredicate,\n\tvalidateDMPermission,\n\tvalidateDefaultMemberPermissions,\n\tvalidateDefaultPermission,\n\tvalidateLocalizationMap,\n\tvalidateNSFW,\n\tvalidateRequiredParameters,\n} from '../Assertions.js';\nimport type { ToAPIApplicationCommandOptions } from '../SlashCommandBuilder.js';\n\n/**\n * This mixin holds symbols that can be shared in slashcommands independent of options or subcommands.\n */\nexport class SharedSlashCommand {\n\tpublic readonly name: string = undefined!;\n\n\tpublic readonly name_localizations?: LocalizationMap;\n\n\tpublic readonly description: string = undefined!;\n\n\tpublic readonly description_localizations?: LocalizationMap;\n\n\tpublic readonly options: ToAPIApplicationCommandOptions[] = [];\n\n\tpublic readonly contexts?: InteractionContextType[];\n\n\t/**\n\t * @deprecated Use {@link SharedSlashCommand.setDefaultMemberPermissions} or {@link SharedSlashCommand.setDMPermission} instead.\n\t */\n\tpublic readonly default_permission: boolean | undefined = undefined;\n\n\tpublic readonly default_member_permissions: Permissions | null | undefined = undefined;\n\n\t/**\n\t * @deprecated Use {@link SharedSlashCommand.contexts} instead.\n\t */\n\tpublic readonly dm_permission: boolean | undefined = undefined;\n\n\tpublic readonly integration_types?: ApplicationIntegrationType[];\n\n\tpublic readonly nsfw: boolean | undefined = undefined;\n\n\t/**\n\t * Sets the contexts of this command.\n\t *\n\t * @param contexts - The contexts\n\t */\n\tpublic setContexts(...contexts: RestOrArray) {\n\t\tReflect.set(this, 'contexts', contextsPredicate.parse(normalizeArray(contexts)));\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the integration types of this command.\n\t *\n\t * @param integrationTypes - The integration types\n\t */\n\tpublic setIntegrationTypes(...integrationTypes: RestOrArray) {\n\t\tReflect.set(this, 'integration_types', integrationTypesPredicate.parse(normalizeArray(integrationTypes)));\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether the command is enabled by default when the application is added to a guild.\n\t *\n\t * @remarks\n\t * If set to `false`, you will have to later `PUT` the permissions for this command.\n\t * @param value - Whether or not to enable this command by default\n\t * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions}\n\t * @deprecated Use {@link SharedSlashCommand.setDefaultMemberPermissions} or {@link SharedSlashCommand.setDMPermission} instead.\n\t */\n\tpublic setDefaultPermission(value: boolean) {\n\t\t// Assert the value matches the conditions\n\t\tvalidateDefaultPermission(value);\n\n\t\tReflect.set(this, 'default_permission', value);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the default permissions a member should have in order to run the command.\n\t *\n\t * @remarks\n\t * You can set this to `'0'` to disable the command by default.\n\t * @param permissions - The permissions bit field to set\n\t * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions}\n\t */\n\tpublic setDefaultMemberPermissions(permissions: Permissions | bigint | number | null | undefined) {\n\t\t// Assert the value and parse it\n\t\tconst permissionValue = validateDefaultMemberPermissions(permissions);\n\n\t\tReflect.set(this, 'default_member_permissions', permissionValue);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets if the command is available in direct messages with the application.\n\t *\n\t * @remarks\n\t * By default, commands are visible. This method is only for global commands.\n\t * @param enabled - Whether the command should be enabled in direct messages\n\t * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions}\n\t * @deprecated\n\t * Use {@link SharedSlashCommand.setContexts} instead.\n\t */\n\tpublic setDMPermission(enabled: boolean | null | undefined) {\n\t\t// Assert the value matches the conditions\n\t\tvalidateDMPermission(enabled);\n\n\t\tReflect.set(this, 'dm_permission', enabled);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether this command is NSFW.\n\t *\n\t * @param nsfw - Whether this command is NSFW\n\t */\n\tpublic setNSFW(nsfw = true) {\n\t\t// Assert the value matches the conditions\n\t\tvalidateNSFW(nsfw);\n\t\tReflect.set(this, 'nsfw', nsfw);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Serializes this builder to API-compatible JSON data.\n\t *\n\t * @remarks\n\t * This method runs validations on the data before serializing it.\n\t * As such, it may throw an error if the data is invalid.\n\t */\n\tpublic toJSON(): RESTPostAPIChatInputApplicationCommandsJSONBody {\n\t\tvalidateRequiredParameters(this.name, this.description, this.options);\n\n\t\tvalidateLocalizationMap(this.name_localizations);\n\t\tvalidateLocalizationMap(this.description_localizations);\n\n\t\treturn {\n\t\t\t...this,\n\t\t\ttype: ApplicationCommandType.ChatInput,\n\t\t\toptions: this.options.map((option) => option.toJSON()),\n\t\t};\n\t}\n}\n","import { ApplicationCommandOptionType, type APIApplicationCommandAttachmentOption } from 'discord-api-types/v10';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase.js';\n\n/**\n * A slash command attachment option.\n */\nexport class SlashCommandAttachmentOption extends ApplicationCommandOptionBase {\n\t/**\n\t * The type of this option.\n\t */\n\tpublic override readonly type = ApplicationCommandOptionType.Attachment as const;\n\n\t/**\n\t * {@inheritDoc ApplicationCommandOptionBase.toJSON}\n\t */\n\tpublic toJSON(): APIApplicationCommandAttachmentOption {\n\t\tthis.runRequiredValidations();\n\n\t\treturn { ...this };\n\t}\n}\n","import type { APIApplicationCommandBasicOption, ApplicationCommandOptionType } from 'discord-api-types/v10';\nimport { validateRequiredParameters, validateRequired, validateLocalizationMap } from '../Assertions.js';\nimport { SharedNameAndDescription } from './NameAndDescription.js';\n\n/**\n * The base application command option builder that contains common symbols for application command builders.\n */\nexport abstract class ApplicationCommandOptionBase extends SharedNameAndDescription {\n\t/**\n\t * The type of this option.\n\t */\n\tpublic abstract readonly type: ApplicationCommandOptionType;\n\n\t/**\n\t * Whether this option is required.\n\t *\n\t * @defaultValue `false`\n\t */\n\tpublic readonly required: boolean = false;\n\n\t/**\n\t * Sets whether this option is required.\n\t *\n\t * @param required - Whether this option should be required\n\t */\n\tpublic setRequired(required: boolean) {\n\t\t// Assert that you actually passed a boolean\n\t\tvalidateRequired(required);\n\n\t\tReflect.set(this, 'required', required);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Serializes this builder to API-compatible JSON data.\n\t *\n\t * @remarks\n\t * This method runs validations on the data before serializing it.\n\t * As such, it may throw an error if the data is invalid.\n\t */\n\tpublic abstract toJSON(): APIApplicationCommandBasicOption;\n\n\t/**\n\t * This method runs required validators on this builder.\n\t */\n\tprotected runRequiredValidations() {\n\t\tvalidateRequiredParameters(this.name, this.description, []);\n\n\t\t// Validate localizations\n\t\tvalidateLocalizationMap(this.name_localizations);\n\t\tvalidateLocalizationMap(this.description_localizations);\n\n\t\t// Assert that you actually passed a boolean\n\t\tvalidateRequired(this.required);\n\t}\n}\n","import { ApplicationCommandOptionType, type APIApplicationCommandBooleanOption } from 'discord-api-types/v10';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase.js';\n\n/**\n * A slash command boolean option.\n */\nexport class SlashCommandBooleanOption extends ApplicationCommandOptionBase {\n\t/**\n\t * The type of this option.\n\t */\n\tpublic readonly type = ApplicationCommandOptionType.Boolean as const;\n\n\t/**\n\t * {@inheritDoc ApplicationCommandOptionBase.toJSON}\n\t */\n\tpublic toJSON(): APIApplicationCommandBooleanOption {\n\t\tthis.runRequiredValidations();\n\n\t\treturn { ...this };\n\t}\n}\n","import { ApplicationCommandOptionType, type APIApplicationCommandChannelOption } from 'discord-api-types/v10';\nimport { mix } from 'ts-mixer';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase.js';\nimport { ApplicationCommandOptionChannelTypesMixin } from '../mixins/ApplicationCommandOptionChannelTypesMixin.js';\n\n/**\n * A slash command channel option.\n */\n@mix(ApplicationCommandOptionChannelTypesMixin)\nexport class SlashCommandChannelOption extends ApplicationCommandOptionBase {\n\t/**\n\t * The type of this option.\n\t */\n\tpublic override readonly type = ApplicationCommandOptionType.Channel as const;\n\n\t/**\n\t * {@inheritDoc ApplicationCommandOptionBase.toJSON}\n\t */\n\tpublic toJSON(): APIApplicationCommandChannelOption {\n\t\tthis.runRequiredValidations();\n\n\t\treturn { ...this };\n\t}\n}\n\nexport interface SlashCommandChannelOption extends ApplicationCommandOptionChannelTypesMixin {}\n","import { s } from '@sapphire/shapeshift';\nimport { ChannelType } from 'discord-api-types/v10';\nimport { normalizeArray, type RestOrArray } from '../../../util/normalizeArray';\n\n/**\n * The allowed channel types used for a channel option in a slash command builder.\n *\n * @privateRemarks This can't be dynamic because const enums are erased at runtime.\n * @internal\n */\nconst allowedChannelTypes = [\n\tChannelType.GuildText,\n\tChannelType.GuildVoice,\n\tChannelType.GuildCategory,\n\tChannelType.GuildAnnouncement,\n\tChannelType.AnnouncementThread,\n\tChannelType.PublicThread,\n\tChannelType.PrivateThread,\n\tChannelType.GuildStageVoice,\n\tChannelType.GuildForum,\n\tChannelType.GuildMedia,\n] as const;\n\n/**\n * The type of allowed channel types used for a channel option.\n */\nexport type ApplicationCommandOptionAllowedChannelTypes = (typeof allowedChannelTypes)[number];\n\nconst channelTypesPredicate = s.array(s.union(allowedChannelTypes.map((type) => s.literal(type))));\n\n/**\n * This mixin holds channel type symbols used for options.\n */\nexport class ApplicationCommandOptionChannelTypesMixin {\n\t/**\n\t * The channel types of this option.\n\t */\n\tpublic readonly channel_types?: ApplicationCommandOptionAllowedChannelTypes[];\n\n\t/**\n\t * Adds channel types to this option.\n\t *\n\t * @param channelTypes - The channel types\n\t */\n\tpublic addChannelTypes(...channelTypes: RestOrArray) {\n\t\tif (this.channel_types === undefined) {\n\t\t\tReflect.set(this, 'channel_types', []);\n\t\t}\n\n\t\tthis.channel_types!.push(...channelTypesPredicate.parse(normalizeArray(channelTypes)));\n\n\t\treturn this;\n\t}\n}\n","import { s } from '@sapphire/shapeshift';\nimport { ApplicationCommandOptionType, type APIApplicationCommandIntegerOption } from 'discord-api-types/v10';\nimport { mix } from 'ts-mixer';\nimport { ApplicationCommandNumericOptionMinMaxValueMixin } from '../mixins/ApplicationCommandNumericOptionMinMaxValueMixin.js';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase.js';\nimport { ApplicationCommandOptionWithAutocompleteMixin } from '../mixins/ApplicationCommandOptionWithAutocompleteMixin.js';\nimport { ApplicationCommandOptionWithChoicesMixin } from '../mixins/ApplicationCommandOptionWithChoicesMixin.js';\n\nconst numberValidator = s.number().int();\n\n/**\n * A slash command integer option.\n */\n@mix(\n\tApplicationCommandNumericOptionMinMaxValueMixin,\n\tApplicationCommandOptionWithAutocompleteMixin,\n\tApplicationCommandOptionWithChoicesMixin,\n)\nexport class SlashCommandIntegerOption\n\textends ApplicationCommandOptionBase\n\timplements ApplicationCommandNumericOptionMinMaxValueMixin\n{\n\t/**\n\t * The type of this option.\n\t */\n\tpublic readonly type = ApplicationCommandOptionType.Integer as const;\n\n\t/**\n\t * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMaxValue}\n\t */\n\tpublic setMaxValue(max: number): this {\n\t\tnumberValidator.parse(max);\n\n\t\tReflect.set(this, 'max_value', max);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMinValue}\n\t */\n\tpublic setMinValue(min: number): this {\n\t\tnumberValidator.parse(min);\n\n\t\tReflect.set(this, 'min_value', min);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ApplicationCommandOptionBase.toJSON}\n\t */\n\tpublic toJSON(): APIApplicationCommandIntegerOption {\n\t\tthis.runRequiredValidations();\n\n\t\tif (this.autocomplete && Array.isArray(this.choices) && this.choices.length > 0) {\n\t\t\tthrow new RangeError('Autocomplete and choices are mutually exclusive to each other.');\n\t\t}\n\n\t\treturn { ...this } as APIApplicationCommandIntegerOption;\n\t}\n}\n\nexport interface SlashCommandIntegerOption\n\textends\n\t\tApplicationCommandNumericOptionMinMaxValueMixin,\n\t\tApplicationCommandOptionWithChoicesMixin,\n\t\tApplicationCommandOptionWithAutocompleteMixin {}\n","/**\n * This mixin holds minimum and maximum symbols used for options.\n */\nexport abstract class ApplicationCommandNumericOptionMinMaxValueMixin {\n\t/**\n\t * The maximum value of this option.\n\t */\n\tpublic readonly max_value?: number;\n\n\t/**\n\t * The minimum value of this option.\n\t */\n\tpublic readonly min_value?: number;\n\n\t/**\n\t * Sets the maximum number value of this option.\n\t *\n\t * @param max - The maximum value this option can be\n\t */\n\tpublic abstract setMaxValue(max: number): this;\n\n\t/**\n\t * Sets the minimum number value of this option.\n\t *\n\t * @param min - The minimum value this option can be\n\t */\n\tpublic abstract setMinValue(min: number): this;\n}\n","import { s } from '@sapphire/shapeshift';\nimport type { ApplicationCommandOptionType } from 'discord-api-types/v10';\n\nconst booleanPredicate = s.boolean();\n\n/**\n * This mixin holds choices and autocomplete symbols used for options.\n */\nexport class ApplicationCommandOptionWithAutocompleteMixin {\n\t/**\n\t * Whether this option utilizes autocomplete.\n\t */\n\tpublic readonly autocomplete?: boolean;\n\n\t/**\n\t * The type of this option.\n\t *\n\t * @privateRemarks Since this is present and this is a mixin, this is needed.\n\t */\n\tpublic readonly type!: ApplicationCommandOptionType;\n\n\t/**\n\t * Whether this option uses autocomplete.\n\t *\n\t * @param autocomplete - Whether this option should use autocomplete\n\t */\n\tpublic setAutocomplete(autocomplete: boolean): this {\n\t\t// Assert that you actually passed a boolean\n\t\tbooleanPredicate.parse(autocomplete);\n\n\t\tif (autocomplete && 'choices' in this && Array.isArray(this.choices) && this.choices.length > 0) {\n\t\t\tthrow new RangeError('Autocomplete and choices are mutually exclusive to each other.');\n\t\t}\n\n\t\tReflect.set(this, 'autocomplete', autocomplete);\n\n\t\treturn this;\n\t}\n}\n","import { s } from '@sapphire/shapeshift';\nimport { ApplicationCommandOptionType, type APIApplicationCommandOptionChoice } from 'discord-api-types/v10';\nimport { normalizeArray, type RestOrArray } from '../../../util/normalizeArray.js';\nimport { localizationMapPredicate, validateChoicesLength } from '../Assertions.js';\n\nconst stringPredicate = s.string().lengthGreaterThanOrEqual(1).lengthLessThanOrEqual(100);\nconst numberPredicate = s.number().greaterThan(Number.NEGATIVE_INFINITY).lessThan(Number.POSITIVE_INFINITY);\nconst choicesPredicate = s\n\t.object({\n\t\tname: stringPredicate,\n\t\tname_localizations: localizationMapPredicate,\n\t\tvalue: s.union([stringPredicate, numberPredicate]),\n\t})\n\t.array();\n\n/**\n * This mixin holds choices and autocomplete symbols used for options.\n */\nexport class ApplicationCommandOptionWithChoicesMixin {\n\t/**\n\t * The choices of this option.\n\t */\n\tpublic readonly choices?: APIApplicationCommandOptionChoice[];\n\n\t/**\n\t * The type of this option.\n\t *\n\t * @privateRemarks Since this is present and this is a mixin, this is needed.\n\t */\n\tpublic readonly type!: ApplicationCommandOptionType;\n\n\t/**\n\t * Adds multiple choices to this option.\n\t *\n\t * @param choices - The choices to add\n\t */\n\tpublic addChoices(...choices: RestOrArray>): this {\n\t\tconst normalizedChoices = normalizeArray(choices);\n\t\tif (normalizedChoices.length > 0 && 'autocomplete' in this && this.autocomplete) {\n\t\t\tthrow new RangeError('Autocomplete and choices are mutually exclusive to each other.');\n\t\t}\n\n\t\tchoicesPredicate.parse(normalizedChoices);\n\n\t\tif (this.choices === undefined) {\n\t\t\tReflect.set(this, 'choices', []);\n\t\t}\n\n\t\tvalidateChoicesLength(normalizedChoices.length, this.choices);\n\n\t\tfor (const { name, name_localizations, value } of normalizedChoices) {\n\t\t\t// Validate the value\n\t\t\tif (this.type === ApplicationCommandOptionType.String) {\n\t\t\t\tstringPredicate.parse(value);\n\t\t\t} else {\n\t\t\t\tnumberPredicate.parse(value);\n\t\t\t}\n\n\t\t\tthis.choices!.push({ name, name_localizations, value });\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets multiple choices for this option.\n\t *\n\t * @param choices - The choices to set\n\t */\n\tpublic setChoices>(...choices: RestOrArray): this {\n\t\tconst normalizedChoices = normalizeArray(choices);\n\t\tif (normalizedChoices.length > 0 && 'autocomplete' in this && this.autocomplete) {\n\t\t\tthrow new RangeError('Autocomplete and choices are mutually exclusive to each other.');\n\t\t}\n\n\t\tchoicesPredicate.parse(normalizedChoices);\n\n\t\tReflect.set(this, 'choices', []);\n\t\tthis.addChoices(normalizedChoices);\n\n\t\treturn this;\n\t}\n}\n","import { ApplicationCommandOptionType, type APIApplicationCommandMentionableOption } from 'discord-api-types/v10';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase.js';\n\n/**\n * A slash command mentionable option.\n */\nexport class SlashCommandMentionableOption extends ApplicationCommandOptionBase {\n\t/**\n\t * The type of this option.\n\t */\n\tpublic readonly type = ApplicationCommandOptionType.Mentionable as const;\n\n\t/**\n\t * {@inheritDoc ApplicationCommandOptionBase.toJSON}\n\t */\n\tpublic toJSON(): APIApplicationCommandMentionableOption {\n\t\tthis.runRequiredValidations();\n\n\t\treturn { ...this };\n\t}\n}\n","import { s } from '@sapphire/shapeshift';\nimport { ApplicationCommandOptionType, type APIApplicationCommandNumberOption } from 'discord-api-types/v10';\nimport { mix } from 'ts-mixer';\nimport { ApplicationCommandNumericOptionMinMaxValueMixin } from '../mixins/ApplicationCommandNumericOptionMinMaxValueMixin.js';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase.js';\nimport { ApplicationCommandOptionWithAutocompleteMixin } from '../mixins/ApplicationCommandOptionWithAutocompleteMixin.js';\nimport { ApplicationCommandOptionWithChoicesMixin } from '../mixins/ApplicationCommandOptionWithChoicesMixin.js';\n\nconst numberValidator = s.number();\n\n/**\n * A slash command number option.\n */\n@mix(\n\tApplicationCommandNumericOptionMinMaxValueMixin,\n\tApplicationCommandOptionWithAutocompleteMixin,\n\tApplicationCommandOptionWithChoicesMixin,\n)\nexport class SlashCommandNumberOption\n\textends ApplicationCommandOptionBase\n\timplements ApplicationCommandNumericOptionMinMaxValueMixin\n{\n\t/**\n\t * The type of this option.\n\t */\n\tpublic readonly type = ApplicationCommandOptionType.Number as const;\n\n\t/**\n\t * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMaxValue}\n\t */\n\tpublic setMaxValue(max: number): this {\n\t\tnumberValidator.parse(max);\n\n\t\tReflect.set(this, 'max_value', max);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMinValue}\n\t */\n\tpublic setMinValue(min: number): this {\n\t\tnumberValidator.parse(min);\n\n\t\tReflect.set(this, 'min_value', min);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ApplicationCommandOptionBase.toJSON}\n\t */\n\tpublic toJSON(): APIApplicationCommandNumberOption {\n\t\tthis.runRequiredValidations();\n\n\t\tif (this.autocomplete && Array.isArray(this.choices) && this.choices.length > 0) {\n\t\t\tthrow new RangeError('Autocomplete and choices are mutually exclusive to each other.');\n\t\t}\n\n\t\treturn { ...this } as APIApplicationCommandNumberOption;\n\t}\n}\n\nexport interface SlashCommandNumberOption\n\textends\n\t\tApplicationCommandNumericOptionMinMaxValueMixin,\n\t\tApplicationCommandOptionWithChoicesMixin,\n\t\tApplicationCommandOptionWithAutocompleteMixin {}\n","import { ApplicationCommandOptionType, type APIApplicationCommandRoleOption } from 'discord-api-types/v10';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase.js';\n\n/**\n * A slash command role option.\n */\nexport class SlashCommandRoleOption extends ApplicationCommandOptionBase {\n\t/**\n\t * The type of this option.\n\t */\n\tpublic override readonly type = ApplicationCommandOptionType.Role as const;\n\n\t/**\n\t * {@inheritDoc ApplicationCommandOptionBase.toJSON}\n\t */\n\tpublic toJSON(): APIApplicationCommandRoleOption {\n\t\tthis.runRequiredValidations();\n\n\t\treturn { ...this };\n\t}\n}\n","import { s } from '@sapphire/shapeshift';\nimport { ApplicationCommandOptionType, type APIApplicationCommandStringOption } from 'discord-api-types/v10';\nimport { mix } from 'ts-mixer';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase.js';\nimport { ApplicationCommandOptionWithAutocompleteMixin } from '../mixins/ApplicationCommandOptionWithAutocompleteMixin.js';\nimport { ApplicationCommandOptionWithChoicesMixin } from '../mixins/ApplicationCommandOptionWithChoicesMixin.js';\n\nconst minLengthValidator = s.number().greaterThanOrEqual(0).lessThanOrEqual(6_000);\nconst maxLengthValidator = s.number().greaterThanOrEqual(1).lessThanOrEqual(6_000);\n\n/**\n * A slash command string option.\n */\n@mix(ApplicationCommandOptionWithAutocompleteMixin, ApplicationCommandOptionWithChoicesMixin)\nexport class SlashCommandStringOption extends ApplicationCommandOptionBase {\n\t/**\n\t * The type of this option.\n\t */\n\tpublic readonly type = ApplicationCommandOptionType.String as const;\n\n\t/**\n\t * The maximum length of this option.\n\t */\n\tpublic readonly max_length?: number;\n\n\t/**\n\t * The minimum length of this option.\n\t */\n\tpublic readonly min_length?: number;\n\n\t/**\n\t * Sets the maximum length of this string option.\n\t *\n\t * @param max - The maximum length this option can be\n\t */\n\tpublic setMaxLength(max: number): this {\n\t\tmaxLengthValidator.parse(max);\n\n\t\tReflect.set(this, 'max_length', max);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the minimum length of this string option.\n\t *\n\t * @param min - The minimum length this option can be\n\t */\n\tpublic setMinLength(min: number): this {\n\t\tminLengthValidator.parse(min);\n\n\t\tReflect.set(this, 'min_length', min);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc ApplicationCommandOptionBase.toJSON}\n\t */\n\tpublic toJSON(): APIApplicationCommandStringOption {\n\t\tthis.runRequiredValidations();\n\n\t\tif (this.autocomplete && Array.isArray(this.choices) && this.choices.length > 0) {\n\t\t\tthrow new RangeError('Autocomplete and choices are mutually exclusive to each other.');\n\t\t}\n\n\t\treturn { ...this } as APIApplicationCommandStringOption;\n\t}\n}\n\nexport interface SlashCommandStringOption\n\textends ApplicationCommandOptionWithChoicesMixin, ApplicationCommandOptionWithAutocompleteMixin {}\n","import { ApplicationCommandOptionType, type APIApplicationCommandUserOption } from 'discord-api-types/v10';\nimport { ApplicationCommandOptionBase } from '../mixins/ApplicationCommandOptionBase.js';\n\n/**\n * A slash command user option.\n */\nexport class SlashCommandUserOption extends ApplicationCommandOptionBase {\n\t/**\n\t * The type of this option.\n\t */\n\tpublic readonly type = ApplicationCommandOptionType.User as const;\n\n\t/**\n\t * {@inheritDoc ApplicationCommandOptionBase.toJSON}\n\t */\n\tpublic toJSON(): APIApplicationCommandUserOption {\n\t\tthis.runRequiredValidations();\n\n\t\treturn { ...this };\n\t}\n}\n","import { assertReturnOfBuilder, validateMaxOptionsLength } from '../Assertions.js';\nimport type { ToAPIApplicationCommandOptions } from '../SlashCommandBuilder';\nimport { SlashCommandAttachmentOption } from '../options/attachment.js';\nimport { SlashCommandBooleanOption } from '../options/boolean.js';\nimport { SlashCommandChannelOption } from '../options/channel.js';\nimport { SlashCommandIntegerOption } from '../options/integer.js';\nimport { SlashCommandMentionableOption } from '../options/mentionable.js';\nimport { SlashCommandNumberOption } from '../options/number.js';\nimport { SlashCommandRoleOption } from '../options/role.js';\nimport { SlashCommandStringOption } from '../options/string.js';\nimport { SlashCommandUserOption } from '../options/user.js';\nimport type { ApplicationCommandOptionBase } from './ApplicationCommandOptionBase.js';\n\n/**\n * This mixin holds symbols that can be shared in slash command options.\n *\n * @typeParam TypeAfterAddingOptions - The type this class should return after adding an option.\n */\nexport class SharedSlashCommandOptions<\n\tTypeAfterAddingOptions extends SharedSlashCommandOptions,\n> {\n\tpublic readonly options!: ToAPIApplicationCommandOptions[];\n\n\t/**\n\t * Adds a boolean option.\n\t *\n\t * @param input - A function that returns an option builder or an already built builder\n\t */\n\tpublic addBooleanOption(\n\t\tinput: SlashCommandBooleanOption | ((builder: SlashCommandBooleanOption) => SlashCommandBooleanOption),\n\t) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandBooleanOption);\n\t}\n\n\t/**\n\t * Adds a user option.\n\t *\n\t * @param input - A function that returns an option builder or an already built builder\n\t */\n\tpublic addUserOption(input: SlashCommandUserOption | ((builder: SlashCommandUserOption) => SlashCommandUserOption)) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandUserOption);\n\t}\n\n\t/**\n\t * Adds a channel option.\n\t *\n\t * @param input - A function that returns an option builder or an already built builder\n\t */\n\tpublic addChannelOption(\n\t\tinput: SlashCommandChannelOption | ((builder: SlashCommandChannelOption) => SlashCommandChannelOption),\n\t) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandChannelOption);\n\t}\n\n\t/**\n\t * Adds a role option.\n\t *\n\t * @param input - A function that returns an option builder or an already built builder\n\t */\n\tpublic addRoleOption(input: SlashCommandRoleOption | ((builder: SlashCommandRoleOption) => SlashCommandRoleOption)) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandRoleOption);\n\t}\n\n\t/**\n\t * Adds an attachment option.\n\t *\n\t * @param input - A function that returns an option builder or an already built builder\n\t */\n\tpublic addAttachmentOption(\n\t\tinput: SlashCommandAttachmentOption | ((builder: SlashCommandAttachmentOption) => SlashCommandAttachmentOption),\n\t) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandAttachmentOption);\n\t}\n\n\t/**\n\t * Adds a mentionable option.\n\t *\n\t * @param input - A function that returns an option builder or an already built builder\n\t */\n\tpublic addMentionableOption(\n\t\tinput: SlashCommandMentionableOption | ((builder: SlashCommandMentionableOption) => SlashCommandMentionableOption),\n\t) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandMentionableOption);\n\t}\n\n\t/**\n\t * Adds a string option.\n\t *\n\t * @param input - A function that returns an option builder or an already built builder\n\t */\n\tpublic addStringOption(\n\t\tinput: SlashCommandStringOption | ((builder: SlashCommandStringOption) => SlashCommandStringOption),\n\t) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandStringOption);\n\t}\n\n\t/**\n\t * Adds an integer option.\n\t *\n\t * @param input - A function that returns an option builder or an already built builder\n\t */\n\tpublic addIntegerOption(\n\t\tinput: SlashCommandIntegerOption | ((builder: SlashCommandIntegerOption) => SlashCommandIntegerOption),\n\t) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandIntegerOption);\n\t}\n\n\t/**\n\t * Adds a number option.\n\t *\n\t * @param input - A function that returns an option builder or an already built builder\n\t */\n\tpublic addNumberOption(\n\t\tinput: SlashCommandNumberOption | ((builder: SlashCommandNumberOption) => SlashCommandNumberOption),\n\t) {\n\t\treturn this._sharedAddOptionMethod(input, SlashCommandNumberOption);\n\t}\n\n\t/**\n\t * Where the actual adding magic happens. ✨\n\t *\n\t * @param input - The input. What else?\n\t * @param Instance - The instance of whatever is being added\n\t * @internal\n\t */\n\tprivate _sharedAddOptionMethod(\n\t\tinput: OptionBuilder | ((builder: OptionBuilder) => OptionBuilder),\n\t\tInstance: new () => OptionBuilder,\n\t): TypeAfterAddingOptions {\n\t\tconst { options } = this;\n\n\t\t// First, assert options conditions - we cannot have more than 25 options\n\t\tvalidateMaxOptionsLength(options);\n\n\t\t// Get the final result\n\t\tconst result = typeof input === 'function' ? input(new Instance()) : input;\n\n\t\tassertReturnOfBuilder(result, Instance);\n\n\t\t// Push it\n\t\toptions.push(result);\n\n\t\treturn this as unknown as TypeAfterAddingOptions;\n\t}\n}\n","import {\n\tApplicationCommandOptionType,\n\ttype APIApplicationCommandSubcommandGroupOption,\n\ttype APIApplicationCommandSubcommandOption,\n} from 'discord-api-types/v10';\nimport { mix } from 'ts-mixer';\nimport { assertReturnOfBuilder, validateMaxOptionsLength, validateRequiredParameters } from './Assertions.js';\nimport type { ToAPIApplicationCommandOptions } from './SlashCommandBuilder.js';\nimport type { ApplicationCommandOptionBase } from './mixins/ApplicationCommandOptionBase.js';\nimport { SharedNameAndDescription } from './mixins/NameAndDescription.js';\nimport { SharedSlashCommandOptions } from './mixins/SharedSlashCommandOptions.js';\n\n/**\n * Represents a folder for subcommands.\n *\n * @see {@link https://discord.com/developers/docs/interactions/application-commands#subcommands-and-subcommand-groups}\n */\n@mix(SharedNameAndDescription)\nexport class SlashCommandSubcommandGroupBuilder implements ToAPIApplicationCommandOptions {\n\t/**\n\t * The name of this subcommand group.\n\t */\n\tpublic readonly name: string = undefined!;\n\n\t/**\n\t * The description of this subcommand group.\n\t */\n\tpublic readonly description: string = undefined!;\n\n\t/**\n\t * The subcommands within this subcommand group.\n\t */\n\tpublic readonly options: SlashCommandSubcommandBuilder[] = [];\n\n\t/**\n\t * Adds a new subcommand to this group.\n\t *\n\t * @param input - A function that returns a subcommand builder or an already built builder\n\t */\n\tpublic addSubcommand(\n\t\tinput:\n\t\t\t| SlashCommandSubcommandBuilder\n\t\t\t| ((subcommandGroup: SlashCommandSubcommandBuilder) => SlashCommandSubcommandBuilder),\n\t) {\n\t\tconst { options } = this;\n\n\t\t// First, assert options conditions - we cannot have more than 25 options\n\t\tvalidateMaxOptionsLength(options);\n\n\t\t// Get the final result\n\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\tconst result = typeof input === 'function' ? input(new SlashCommandSubcommandBuilder()) : input;\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\tassertReturnOfBuilder(result, SlashCommandSubcommandBuilder);\n\n\t\t// Push it\n\t\toptions.push(result);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Serializes this builder to API-compatible JSON data.\n\t *\n\t * @remarks\n\t * This method runs validations on the data before serializing it.\n\t * As such, it may throw an error if the data is invalid.\n\t */\n\tpublic toJSON(): APIApplicationCommandSubcommandGroupOption {\n\t\tvalidateRequiredParameters(this.name, this.description, this.options);\n\n\t\treturn {\n\t\t\ttype: ApplicationCommandOptionType.SubcommandGroup,\n\t\t\tname: this.name,\n\t\t\tname_localizations: this.name_localizations,\n\t\t\tdescription: this.description,\n\t\t\tdescription_localizations: this.description_localizations,\n\t\t\toptions: this.options.map((option) => option.toJSON()),\n\t\t};\n\t}\n}\n\nexport interface SlashCommandSubcommandGroupBuilder extends SharedNameAndDescription {}\n\n/**\n * A builder that creates API-compatible JSON data for slash command subcommands.\n *\n * @see {@link https://discord.com/developers/docs/interactions/application-commands#subcommands-and-subcommand-groups}\n */\n@mix(SharedNameAndDescription, SharedSlashCommandOptions)\nexport class SlashCommandSubcommandBuilder implements ToAPIApplicationCommandOptions {\n\t/**\n\t * The name of this subcommand.\n\t */\n\tpublic readonly name: string = undefined!;\n\n\t/**\n\t * The description of this subcommand.\n\t */\n\tpublic readonly description: string = undefined!;\n\n\t/**\n\t * The options within this subcommand.\n\t */\n\tpublic readonly options: ApplicationCommandOptionBase[] = [];\n\n\t/**\n\t * Serializes this builder to API-compatible JSON data.\n\t *\n\t * @remarks\n\t * This method runs validations on the data before serializing it.\n\t * As such, it may throw an error if the data is invalid.\n\t */\n\tpublic toJSON(): APIApplicationCommandSubcommandOption {\n\t\tvalidateRequiredParameters(this.name, this.description, this.options);\n\n\t\treturn {\n\t\t\ttype: ApplicationCommandOptionType.Subcommand,\n\t\t\tname: this.name,\n\t\t\tname_localizations: this.name_localizations,\n\t\t\tdescription: this.description,\n\t\t\tdescription_localizations: this.description_localizations,\n\t\t\toptions: this.options.map((option) => option.toJSON()),\n\t\t};\n\t}\n}\n\nexport interface SlashCommandSubcommandBuilder\n\textends SharedNameAndDescription, SharedSlashCommandOptions {}\n","import { assertReturnOfBuilder, validateMaxOptionsLength } from '../Assertions.js';\nimport type { ToAPIApplicationCommandOptions } from '../SlashCommandBuilder.js';\nimport { SlashCommandSubcommandBuilder, SlashCommandSubcommandGroupBuilder } from '../SlashCommandSubcommands.js';\n\n/**\n * This mixin holds symbols that can be shared in slash subcommands.\n *\n * @typeParam TypeAfterAddingSubcommands - The type this class should return after adding a subcommand or subcommand group.\n */\nexport class SharedSlashCommandSubcommands<\n\tTypeAfterAddingSubcommands extends SharedSlashCommandSubcommands,\n> {\n\tpublic readonly options: ToAPIApplicationCommandOptions[] = [];\n\n\t/**\n\t * Adds a new subcommand group to this command.\n\t *\n\t * @param input - A function that returns a subcommand group builder or an already built builder\n\t */\n\tpublic addSubcommandGroup(\n\t\tinput:\n\t\t\t| SlashCommandSubcommandGroupBuilder\n\t\t\t| ((subcommandGroup: SlashCommandSubcommandGroupBuilder) => SlashCommandSubcommandGroupBuilder),\n\t): TypeAfterAddingSubcommands {\n\t\tconst { options } = this;\n\n\t\t// First, assert options conditions - we cannot have more than 25 options\n\t\tvalidateMaxOptionsLength(options);\n\n\t\t// Get the final result\n\t\tconst result = typeof input === 'function' ? input(new SlashCommandSubcommandGroupBuilder()) : input;\n\n\t\tassertReturnOfBuilder(result, SlashCommandSubcommandGroupBuilder);\n\n\t\t// Push it\n\t\toptions.push(result);\n\n\t\treturn this as unknown as TypeAfterAddingSubcommands;\n\t}\n\n\t/**\n\t * Adds a new subcommand to this command.\n\t *\n\t * @param input - A function that returns a subcommand builder or an already built builder\n\t */\n\tpublic addSubcommand(\n\t\tinput:\n\t\t\t| SlashCommandSubcommandBuilder\n\t\t\t| ((subcommandGroup: SlashCommandSubcommandBuilder) => SlashCommandSubcommandBuilder),\n\t): TypeAfterAddingSubcommands {\n\t\tconst { options } = this;\n\n\t\t// First, assert options conditions - we cannot have more than 25 options\n\t\tvalidateMaxOptionsLength(options);\n\n\t\t// Get the final result\n\t\tconst result = typeof input === 'function' ? input(new SlashCommandSubcommandBuilder()) : input;\n\n\t\tassertReturnOfBuilder(result, SlashCommandSubcommandBuilder);\n\n\t\t// Push it\n\t\toptions.push(result);\n\n\t\treturn this as unknown as TypeAfterAddingSubcommands;\n\t}\n}\n","import { s } from '@sapphire/shapeshift';\nimport { ApplicationCommandType, ApplicationIntegrationType, InteractionContextType } from 'discord-api-types/v10';\nimport { isValidationEnabled } from '../../util/validation.js';\nimport type { ContextMenuCommandType } from './ContextMenuCommandBuilder.js';\n\nconst namePredicate = s\n\t.string()\n\t.lengthGreaterThanOrEqual(1)\n\t.lengthLessThanOrEqual(32)\n\t.regex(/\\S/)\n\t.setValidationEnabled(isValidationEnabled);\nconst typePredicate = s\n\t.union([s.literal(ApplicationCommandType.User), s.literal(ApplicationCommandType.Message)])\n\t.setValidationEnabled(isValidationEnabled);\nconst booleanPredicate = s.boolean();\n\nexport function validateDefaultPermission(value: unknown): asserts value is boolean {\n\tbooleanPredicate.parse(value);\n}\n\nexport function validateName(name: unknown): asserts name is string {\n\tnamePredicate.parse(name);\n}\n\nexport function validateType(type: unknown): asserts type is ContextMenuCommandType {\n\ttypePredicate.parse(type);\n}\n\nexport function validateRequiredParameters(name: string, type: number) {\n\t// Assert name matches all conditions\n\tvalidateName(name);\n\n\t// Assert type is valid\n\tvalidateType(type);\n}\n\nconst dmPermissionPredicate = s.boolean().nullish();\n\nexport function validateDMPermission(value: unknown): asserts value is boolean | null | undefined {\n\tdmPermissionPredicate.parse(value);\n}\n\nconst memberPermissionPredicate = s\n\t.union([\n\t\ts.bigint().transform((value) => value.toString()),\n\t\ts\n\t\t\t.number()\n\t\t\t.safeInt()\n\t\t\t.transform((value) => value.toString()),\n\t\ts.string().regex(/^\\d+$/),\n\t])\n\t.nullish();\n\nexport function validateDefaultMemberPermissions(permissions: unknown) {\n\treturn memberPermissionPredicate.parse(permissions);\n}\n\nexport const contextsPredicate = s.array(\n\ts.nativeEnum(InteractionContextType).setValidationEnabled(isValidationEnabled),\n);\n\nexport const integrationTypesPredicate = s.array(\n\ts.nativeEnum(ApplicationIntegrationType).setValidationEnabled(isValidationEnabled),\n);\n","import type {\n\tApplicationCommandType,\n\tApplicationIntegrationType,\n\tInteractionContextType,\n\tLocaleString,\n\tLocalizationMap,\n\tPermissions,\n\tRESTPostAPIContextMenuApplicationCommandsJSONBody,\n} from 'discord-api-types/v10';\nimport type { RestOrArray } from '../../util/normalizeArray.js';\nimport { normalizeArray } from '../../util/normalizeArray.js';\nimport { validateLocale, validateLocalizationMap } from '../slashCommands/Assertions.js';\nimport {\n\tvalidateRequiredParameters,\n\tvalidateName,\n\tvalidateType,\n\tvalidateDefaultPermission,\n\tvalidateDefaultMemberPermissions,\n\tvalidateDMPermission,\n\tcontextsPredicate,\n\tintegrationTypesPredicate,\n} from './Assertions.js';\n\n/**\n * The type a context menu command can be.\n */\nexport type ContextMenuCommandType = ApplicationCommandType.Message | ApplicationCommandType.User;\n\n/**\n * A builder that creates API-compatible JSON data for context menu commands.\n */\nexport class ContextMenuCommandBuilder {\n\t/**\n\t * The name of this command.\n\t */\n\tpublic readonly name: string = undefined!;\n\n\t/**\n\t * The name localizations of this command.\n\t */\n\tpublic readonly name_localizations?: LocalizationMap;\n\n\t/**\n\t * The type of this command.\n\t */\n\tpublic readonly type: ContextMenuCommandType = undefined!;\n\n\t/**\n\t * The contexts for this command.\n\t */\n\tpublic readonly contexts?: InteractionContextType[];\n\n\t/**\n\t * Whether this command is enabled by default when the application is added to a guild.\n\t *\n\t * @deprecated Use {@link ContextMenuCommandBuilder.setDefaultMemberPermissions} or {@link ContextMenuCommandBuilder.setDMPermission} instead.\n\t */\n\tpublic readonly default_permission: boolean | undefined = undefined;\n\n\t/**\n\t * The set of permissions represented as a bit set for the command.\n\t */\n\tpublic readonly default_member_permissions: Permissions | null | undefined = undefined;\n\n\t/**\n\t * Indicates whether the command is available in direct messages with the application.\n\t *\n\t * @remarks\n\t * By default, commands are visible. This property is only for global commands.\n\t * @deprecated\n\t * Use {@link ContextMenuCommandBuilder.contexts} instead.\n\t */\n\tpublic readonly dm_permission: boolean | undefined = undefined;\n\n\t/**\n\t * The integration types for this command.\n\t */\n\tpublic readonly integration_types?: ApplicationIntegrationType[];\n\n\t/**\n\t * Sets the contexts of this command.\n\t *\n\t * @param contexts - The contexts\n\t */\n\tpublic setContexts(...contexts: RestOrArray) {\n\t\tReflect.set(this, 'contexts', contextsPredicate.parse(normalizeArray(contexts)));\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets integration types of this command.\n\t *\n\t * @param integrationTypes - The integration types\n\t */\n\tpublic setIntegrationTypes(...integrationTypes: RestOrArray) {\n\t\tReflect.set(this, 'integration_types', integrationTypesPredicate.parse(normalizeArray(integrationTypes)));\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the name of this command.\n\t *\n\t * @param name - The name to use\n\t */\n\tpublic setName(name: string) {\n\t\t// Assert the name matches the conditions\n\t\tvalidateName(name);\n\n\t\tReflect.set(this, 'name', name);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the type of this command.\n\t *\n\t * @param type - The type to use\n\t */\n\tpublic setType(type: ContextMenuCommandType) {\n\t\t// Assert the type is valid\n\t\tvalidateType(type);\n\n\t\tReflect.set(this, 'type', type);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets whether the command is enabled by default when the application is added to a guild.\n\t *\n\t * @remarks\n\t * If set to `false`, you will have to later `PUT` the permissions for this command.\n\t * @param value - Whether to enable this command by default\n\t * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions}\n\t * @deprecated Use {@link ContextMenuCommandBuilder.setDefaultMemberPermissions} or {@link ContextMenuCommandBuilder.setDMPermission} instead.\n\t */\n\tpublic setDefaultPermission(value: boolean) {\n\t\t// Assert the value matches the conditions\n\t\tvalidateDefaultPermission(value);\n\n\t\tReflect.set(this, 'default_permission', value);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the default permissions a member should have in order to run this command.\n\t *\n\t * @remarks\n\t * You can set this to `'0'` to disable the command by default.\n\t * @param permissions - The permissions bit field to set\n\t * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions}\n\t */\n\tpublic setDefaultMemberPermissions(permissions: Permissions | bigint | number | null | undefined) {\n\t\t// Assert the value and parse it\n\t\tconst permissionValue = validateDefaultMemberPermissions(permissions);\n\n\t\tReflect.set(this, 'default_member_permissions', permissionValue);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets if the command is available in direct messages with the application.\n\t *\n\t * @remarks\n\t * By default, commands are visible. This method is only for global commands.\n\t * @param enabled - Whether the command should be enabled in direct messages\n\t * @see {@link https://discord.com/developers/docs/interactions/application-commands#permissions}\n\t * @deprecated Use {@link ContextMenuCommandBuilder.setContexts} instead.\n\t */\n\tpublic setDMPermission(enabled: boolean | null | undefined) {\n\t\t// Assert the value matches the conditions\n\t\tvalidateDMPermission(enabled);\n\n\t\tReflect.set(this, 'dm_permission', enabled);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets a name localization for this command.\n\t *\n\t * @param locale - The locale to set\n\t * @param localizedName - The localized name for the given `locale`\n\t */\n\tpublic setNameLocalization(locale: LocaleString, localizedName: string | null) {\n\t\tif (!this.name_localizations) {\n\t\t\tReflect.set(this, 'name_localizations', {});\n\t\t}\n\n\t\tconst parsedLocale = validateLocale(locale);\n\n\t\tif (localizedName === null) {\n\t\t\tthis.name_localizations![parsedLocale] = null;\n\t\t\treturn this;\n\t\t}\n\n\t\tvalidateName(localizedName);\n\n\t\tthis.name_localizations![parsedLocale] = localizedName;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the name localizations for this command.\n\t *\n\t * @param localizedNames - The object of localized names to set\n\t */\n\tpublic setNameLocalizations(localizedNames: LocalizationMap | null) {\n\t\tif (localizedNames === null) {\n\t\t\tReflect.set(this, 'name_localizations', null);\n\t\t\treturn this;\n\t\t}\n\n\t\tReflect.set(this, 'name_localizations', {});\n\n\t\tfor (const args of Object.entries(localizedNames))\n\t\t\tthis.setNameLocalization(...(args as [LocaleString, string | null]));\n\t\treturn this;\n\t}\n\n\t/**\n\t * Serializes this builder to API-compatible JSON data.\n\t *\n\t * @remarks\n\t * This method runs validations on the data before serializing it.\n\t * As such, it may throw an error if the data is invalid.\n\t */\n\tpublic toJSON(): RESTPostAPIContextMenuApplicationCommandsJSONBody {\n\t\tvalidateRequiredParameters(this.name, this.type);\n\n\t\tvalidateLocalizationMap(this.name_localizations);\n\n\t\treturn { ...this };\n\t}\n}\n","import type { APIEmbed } from 'discord-api-types/v10';\n\n/**\n * Calculates the length of the embed.\n *\n * @param data - The embed data to check\n */\nexport function embedLength(data: APIEmbed) {\n\treturn (\n\t\t(data.title?.length ?? 0) +\n\t\t(data.description?.length ?? 0) +\n\t\t(data.fields?.reduce((prev, curr) => prev + curr.name.length + curr.value.length, 0) ?? 0) +\n\t\t(data.footer?.text.length ?? 0) +\n\t\t(data.author?.name.length ?? 0)\n\t);\n}\n"],"mappings":"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","names":["Assertions_exports","s","s","ComponentType","ComponentType","ComponentType","Assertions_exports","s","ComponentType","s","ComponentType","ComponentType","ComponentType","ComponentType","ComponentType","ComponentType","ComponentType","Assertions_exports","s","ComponentType","s","ComponentType","ComponentType","ComponentType","ComponentType","Assertions_exports","placeholderValidator","s","ComponentType","s","placeholderValidator","ComponentType","ComponentType","ComponentType","SelectMenuDefaultValueType","ComponentType","SelectMenuDefaultValueType","ComponentType","SelectMenuDefaultValueType","ComponentType","SelectMenuDefaultValueType","ComponentType","Assertions_exports","Result","s","ChannelType","ComponentType","SelectMenuDefaultValueType","s","ComponentType","ChannelType","SelectMenuDefaultValueType","Result","ComponentType","ComponentType","SelectMenuDefaultValueType","ComponentType","SelectMenuDefaultValueType","ComponentType","ComponentType","placeholderValidator","Assertions_exports","s","ComponentType","s","ComponentType","ComponentType","ComponentType","Assertions_exports","descriptionPredicate","s","ComponentType","ComponentType","descriptionPredicate","s","descriptionPredicate","ComponentType","ComponentType","ComponentType","ComponentType","ComponentType","ComponentType","ComponentType","ComponentType","descriptionPredicate","ComponentType","ComponentType","ComponentType","ComponentType","ComponentType","ComponentType","Assertions_exports","validateRequiredParameters","s","s","validateRequiredParameters","ComponentType","validateRequiredParameters","Assertions_exports","assertReturnOfBuilder","validateRequiredParameters","s","s","descriptionPredicate","validateRequiredParameters","assertReturnOfBuilder","mix","validateRequiredParameters","validateRequiredParameters","ApplicationCommandOptionType","ApplicationCommandOptionType","ApplicationCommandOptionType","s","ChannelType","ChannelType","s","ApplicationCommandOptionType","s","ApplicationCommandOptionType","mix","s","booleanPredicate","s","s","ApplicationCommandOptionType","s","ApplicationCommandOptionType","s","ApplicationCommandOptionType","mix","ApplicationCommandOptionType","ApplicationCommandOptionType","s","ApplicationCommandOptionType","mix","numberValidator","s","ApplicationCommandOptionType","mix","ApplicationCommandOptionType","ApplicationCommandOptionType","s","ApplicationCommandOptionType","mix","minLengthValidator","s","maxLengthValidator","ApplicationCommandOptionType","mix","ApplicationCommandOptionType","ApplicationCommandOptionType","assertReturnOfBuilder","ApplicationCommandOptionType","mix","assertReturnOfBuilder","validateRequiredParameters","ApplicationCommandOptionType","mix","assertReturnOfBuilder","mix","Assertions_exports","contextsPredicate","integrationTypesPredicate","validateDMPermission","validateDefaultMemberPermissions","validateDefaultPermission","validateName","validateRequiredParameters","s","ApplicationCommandType","ApplicationIntegrationType","InteractionContextType","namePredicate","s","ApplicationCommandType","booleanPredicate","validateDefaultPermission","validateName","validateRequiredParameters","dmPermissionPredicate","validateDMPermission","memberPermissionPredicate","validateDefaultMemberPermissions","contextsPredicate","InteractionContextType","integrationTypesPredicate","ApplicationIntegrationType","contextsPredicate","integrationTypesPredicate","validateName","validateDefaultPermission","validateDefaultMemberPermissions","validateDMPermission","validateRequiredParameters"]} \ No newline at end of file diff --git a/node_modules/@discordjs/builders/package.json b/node_modules/@discordjs/builders/package.json new file mode 100644 index 0000000..7860784 --- /dev/null +++ b/node_modules/@discordjs/builders/package.json @@ -0,0 +1,99 @@ +{ + "$schema": "https://json.schemastore.org/package.json", + "name": "@discordjs/builders", + "version": "1.14.1", + "description": "A set of builders that you can use when creating your bot", + "exports": { + ".": { + "require": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + }, + "import": { + "types": "./dist/index.d.mts", + "default": "./dist/index.mjs" + } + } + }, + "main": "./dist/index.js", + "module": "./dist/index.mjs", + "types": "./dist/index.d.ts", + "directories": { + "lib": "src", + "test": "__tests__" + }, + "files": [ + "dist" + ], + "contributors": [ + "Vlad Frangu ", + "Crawl ", + "Amish Shah ", + "SpaceEEC ", + "Aura Román " + ], + "license": "Apache-2.0", + "keywords": [ + "discord", + "api", + "bot", + "client", + "node", + "discordapp", + "discordjs" + ], + "repository": { + "type": "git", + "url": "https://github.com/discordjs/discord.js.git", + "directory": "packages/builders" + }, + "bugs": { + "url": "https://github.com/discordjs/discord.js/issues" + }, + "homepage": "https://discord.js.org", + "funding": "https://github.com/discordjs/discord.js?sponsor", + "dependencies": { + "@sapphire/shapeshift": "^4.0.0", + "discord-api-types": "^0.38.40", + "fast-deep-equal": "^3.1.3", + "ts-mixer": "^6.0.4", + "tslib": "^2.6.3", + "@discordjs/formatters": "^0.6.2", + "@discordjs/util": "^1.2.0" + }, + "devDependencies": { + "@favware/cliff-jumper": "^4.1.0", + "@types/node": "^16.18.126", + "@vitest/coverage-v8": "^2.0.5", + "cross-env": "^7.0.3", + "esbuild-plugin-version-injector": "^1.2.1", + "eslint": "^8.57.1", + "eslint-config-neon": "^0.1.62", + "eslint-formatter-pretty": "^6.0.1", + "prettier": "^3.8.1", + "tsup": "^8.5.1", + "turbo": "^2.8.10", + "typescript": "~5.8.3", + "vitest": "^2.0.5", + "@discordjs/api-extractor": "^7.38.1", + "@discordjs/scripts": "^0.1.0" + }, + "engines": { + "node": ">=16.11.0" + }, + "publishConfig": { + "access": "public", + "provenance": true + }, + "scripts": { + "test": "vitest run", + "build": "tsc --noEmit && tsup", + "build:docs": "tsc -p tsconfig.docs.json", + "lint": "prettier --check . && cross-env TIMING=1 eslint --format=pretty src __tests__", + "format": "prettier --write . && cross-env TIMING=1 eslint --fix --format=pretty src __tests__", + "fmt": "pnpm run format", + "docs": "pnpm run build:docs && api-extractor run --local --minify && generate-split-documentation", + "changelog": "git cliff --prepend ./CHANGELOG.md -u -c ./cliff.toml -r ../../ --include-path 'packages/builders/*'", + "release": "cliff-jumper" + } +} \ No newline at end of file diff --git a/node_modules/@discordjs/collection/CHANGELOG.md b/node_modules/@discordjs/collection/CHANGELOG.md new file mode 100644 index 0000000..2c43057 --- /dev/null +++ b/node_modules/@discordjs/collection/CHANGELOG.md @@ -0,0 +1,190 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +# [@discordjs/collection@1.5.3](https://github.com/discordjs/discord.js/compare/@discordjs/collection@1.5.2...@discordjs/collection@1.5.3) - (2023-08-17) + +## Documentation + +- Update Node.js requirement to 16.11.0 (#9764) ([188877c](https://github.com/discordjs/discord.js/commit/188877c50af70f0d5cffb246620fa277435c6ce6)) + +# [@discordjs/collection@1.5.2](https://github.com/discordjs/discord.js/compare/@discordjs/collection@1.5.1...@discordjs/collection@1.5.2) - (2023-07-31) + +## Refactor + +- **collection:** Reduce `reduce`'s code (#9581) ([b85a3f2](https://github.com/discordjs/discord.js/commit/b85a3f2ddee8fc5974749b95fc07389a03093df2)) + +# [@discordjs/collection@1.5.1](https://github.com/discordjs/discord.js/compare/@discordjs/collection@1.5.0...@discordjs/collection@1.5.1) - (2023-05-01) + +## Bug Fixes + +- Fix external links (#9313) ([a7425c2](https://github.com/discordjs/discord.js/commit/a7425c29c4f23f1b31f4c6a463107ca9eb7fd7e2)) + +## Documentation + +- Generate static imports for types with api-extractor ([98a76db](https://github.com/discordjs/discord.js/commit/98a76db482879f79d6bb2fb2e5fc65ac2c34e2d9)) + +# [@discordjs/collection@1.5.2](https://github.com/discordjs/discord.js/compare/@discordjs/collection@1.5.1...@discordjs/collection@1.5.2) - (2023-07-31) + +## Refactor + +- **collection:** Reduce `reduce`'s code (#9581) ([b85a3f2](https://github.com/discordjs/discord.js/commit/b85a3f2ddee8fc5974749b95fc07389a03093df2)) + +# [@discordjs/collection@1.5.1](https://github.com/discordjs/discord.js/compare/@discordjs/collection@1.5.0...@discordjs/collection@1.5.1) - (2023-05-01) + +## Bug Fixes + +- Fix external links (#9313) ([a7425c2](https://github.com/discordjs/discord.js/commit/a7425c29c4f23f1b31f4c6a463107ca9eb7fd7e2)) + +## Documentation + +- Generate static imports for types with api-extractor ([98a76db](https://github.com/discordjs/discord.js/commit/98a76db482879f79d6bb2fb2e5fc65ac2c34e2d9)) + +# [@discordjs/collection@1.5.1](https://github.com/discordjs/discord.js/compare/@discordjs/collection@1.5.0...@discordjs/collection@1.5.1) - (2023-05-01) + +## Bug Fixes + +- Fix external links (#9313) ([a7425c2](https://github.com/discordjs/discord.js/commit/a7425c29c4f23f1b31f4c6a463107ca9eb7fd7e2)) + +## Documentation + +- Generate static imports for types with api-extractor ([98a76db](https://github.com/discordjs/discord.js/commit/98a76db482879f79d6bb2fb2e5fc65ac2c34e2d9)) + +# [@discordjs/collection@1.5.0](https://github.com/discordjs/discord.js/compare/@discordjs/collection@1.4.0...@discordjs/collection@1.5.0) - (2023-04-01) + +## Bug Fixes + +- **scripts:** Accessing tsComment ([d8d5f31](https://github.com/discordjs/discord.js/commit/d8d5f31d3927fd1de62f1fa3a1a6e454243ad87b)) + +## Features + +- **website:** Render syntax and mdx on the server (#9086) ([ee5169e](https://github.com/discordjs/discord.js/commit/ee5169e0aadd7bbfcd752aae614ec0f69602b68b)) + +## Refactor + +- **collection:** Fix/silence linter warnings (#9266) ([d6f4e60](https://github.com/discordjs/discord.js/commit/d6f4e60efd1a1796fc84dbbfbac4f9790e480a1c)) + +# [@discordjs/collection@1.4.0](https://github.com/discordjs/discord.js/compare/@discordjs/collection@1.3.0...@discordjs/collection@1.4.0) - (2023-03-12) + +## Documentation + +- Fix version export (#9049) ([8b70f49](https://github.com/discordjs/discord.js/commit/8b70f497a1207e30edebdecd12b926c981c13d28)) + +## Features + +- **website:** Add support for source file links (#9048) ([f6506e9](https://github.com/discordjs/discord.js/commit/f6506e99c496683ee0ab67db0726b105b929af38)) + +## Refactor + +- Compare with `undefined` directly (#9191) ([869153c](https://github.com/discordjs/discord.js/commit/869153c3fdf155783e7c0ecebd3627b087c3a026)) + +# [@discordjs/collection@1.3.0](https://github.com/discordjs/discord.js/compare/@discordjs/collection@1.2.0...@discordjs/collection@1.3.0) - (2022-11-28) + +## Bug Fixes + +- Pin @types/node version ([9d8179c](https://github.com/discordjs/discord.js/commit/9d8179c6a78e1c7f9976f852804055964d5385d4)) + +## Features + +- Add `Collection#subtract()` (#8393) ([291f36c](https://github.com/discordjs/discord.js/commit/291f36cd736b5dea058145a1335bf7c78ec1d81d)) + +# [@discordjs/collection@1.2.0](https://github.com/discordjs/discord.js/compare/@discordjs/collection@1.1.0...@discordjs/collection@1.2.0) - (2022-10-08) + +## Bug Fixes + +- Footer / sidebar / deprecation alert ([ba3e0ed](https://github.com/discordjs/discord.js/commit/ba3e0ed348258fe8e51eefb4aa7379a1230616a9)) + +## Documentation + +- Change name (#8604) ([dd5a089](https://github.com/discordjs/discord.js/commit/dd5a08944c258a847fc4377f1d5e953264ab47d0)) +- Remove xml tag from collection#find (#8550) ([4032457](https://github.com/discordjs/discord.js/commit/40324574ebea9894cadcc967e0db0e4e21d62768)) + +## Features + +- Web-components (#8715) ([0ac3e76](https://github.com/discordjs/discord.js/commit/0ac3e766bd9dbdeb106483fa4bb085d74de346a2)) + +## Refactor + +- Website components (#8600) ([c334157](https://github.com/discordjs/discord.js/commit/c3341570d983aea9ecc419979d5a01de658c9d67)) +- Use `eslint-config-neon` for packages. (#8579) ([edadb9f](https://github.com/discordjs/discord.js/commit/edadb9fe5dfd9ff51a3cfc9b25cb242d3f9f5241)) + +## Typings + +- **Collection:** Make fn return type unknown (#8676) ([822b7f2](https://github.com/discordjs/discord.js/commit/822b7f234af053c8f917b0a998b82abfccd33801)) + +# [@discordjs/collection@1.1.0](https://github.com/discordjs/discord.js/compare/@discordjs/collection@1.0.1...@discordjs/collection@1.1.0) - (2022-08-22) + +## Bug Fixes + +- Use proper format for `@link` text (#8384) ([2655639](https://github.com/discordjs/discord.js/commit/26556390a3800e954974a00c1328ff47d3e67e9a)) + +## Documentation + +- Fence examples in codeblocks ([193b252](https://github.com/discordjs/discord.js/commit/193b252672440a860318d3c2968aedd9cb88e0ce)) +- Use link tags (#8382) ([5494791](https://github.com/discordjs/discord.js/commit/549479131318c659f86f0eb18578d597e22522d3)) + +## Features + +- **website:** Show `constructor` information (#8540) ([e42fd16](https://github.com/discordjs/discord.js/commit/e42fd1636973b10dd7ed6fb4280ee1a4a8f82007)) +- **website:** Show descriptions for `@typeParam` blocks (#8523) ([e475b63](https://github.com/discordjs/discord.js/commit/e475b63f257f6261d73cb89fee9ecbcdd84e2a6b)) + +## Refactor + +- **website:** Adjust typography (#8503) ([0f83402](https://github.com/discordjs/discord.js/commit/0f834029850d2448981596cf082ff59917018d66)) +- Docs design (#8487) ([4ab1d09](https://github.com/discordjs/discord.js/commit/4ab1d09997a18879a9eb9bda39df6f15aa22557e)) + +# [@discordjs/collection@0.8.0](https://github.com/discordjs/discord.js/compare/@discordjs/collection@0.7.0...@discordjs/collection@0.8.0) - (2022-07-17) + +## Bug Fixes + +- **Collection:** Make error messages consistent (#8224) ([5bd6b28](https://github.com/discordjs/discord.js/commit/5bd6b28b3ebfced1cb9d23e83bd7c0def7a12404)) +- Check for function type (#8064) ([3bb9c0e](https://github.com/discordjs/discord.js/commit/3bb9c0e5c37311044ff41761b572ac4f91cda57c)) + +## Documentation + +- Add codecov coverage badge to readmes (#8226) ([f6db285](https://github.com/discordjs/discord.js/commit/f6db285c073898a749fe4591cbd4463d1896daf5)) + +## Features + +- Codecov (#8219) ([f10f4cd](https://github.com/discordjs/discord.js/commit/f10f4cdcd88ca6be7ec735ed3a415ba13da83db0)) +- **docgen:** Update typedoc ([b3346f4](https://github.com/discordjs/discord.js/commit/b3346f4b9b3d4f96443506643d4631dc1c6d7b21)) +- Website (#8043) ([127931d](https://github.com/discordjs/discord.js/commit/127931d1df7a2a5c27923c2f2151dbf3824e50cc)) +- **docgen:** Typescript support ([3279b40](https://github.com/discordjs/discord.js/commit/3279b40912e6aa61507bedb7db15a2b8668de44b)) +- Docgen package (#8029) ([8b979c0](https://github.com/discordjs/discord.js/commit/8b979c0245c42fd824d8e98745ee869f5360fc86)) +- Use vitest instead of jest for more speed ([8d8e6c0](https://github.com/discordjs/discord.js/commit/8d8e6c03decd7352a2aa180f6e5bc1a13602539b)) +- Add scripts package for locally used scripts ([f2ae1f9](https://github.com/discordjs/discord.js/commit/f2ae1f9348bfd893332a9060f71a8a5f272a1b8b)) + +## Refactor + +- **collection:** Remove `default` property (#8055) ([c8f1690](https://github.com/discordjs/discord.js/commit/c8f1690896f55f06e05a83704262783cfc2bb91d)) +- **collection:** Remove default export (#8053) ([16810f3](https://github.com/discordjs/discord.js/commit/16810f3e410bf35ed7e6e7412d517ea74c792c5d)) +- Move all the config files to root (#8033) ([769ea0b](https://github.com/discordjs/discord.js/commit/769ea0bfe78c4f1d413c6b397c604ffe91e39c6a)) + +## Testing + +- **collection:** Improve coverage (#8222) ([a51f721](https://github.com/discordjs/discord.js/commit/a51f7215eca67a0f46fba8b2d706f7ec6f6dc228)) + +# [@discordjs/collection@0.7.0](https://github.com/discordjs/discord.js/compare/@discordjs/collection@0.6.0...@discordjs/collection@0.7.0) - (2022-06-04) + +## Styling + +- Cleanup tests and tsup configs ([6b8ef20](https://github.com/discordjs/discord.js/commit/6b8ef20cb3af5b5cfd176dd0aa0a1a1e98551629)) + +# [@discordjs/collection@0.6.0](https://github.com/discordjs/discord.js/compare/@discordjs/collection@0.5.0...@discordjs/collection@0.6.0) - (2022-04-17) + +## Features + +- Add support for module: NodeNext in TS and ESM (#7598) ([8f1986a](https://github.com/discordjs/discord.js/commit/8f1986a6aa98365e09b00e84ad5f9f354ab61f3d)) +- **builders:** Add attachment command option type (#7203) ([ae0f35f](https://github.com/discordjs/discord.js/commit/ae0f35f51d68dfa5a7dc43d161ef9365171debdb)) +- **Collection:** Add merging functions (#7299) ([e4bd07b](https://github.com/discordjs/discord.js/commit/e4bd07b2394f227ea06b72eb6999de9ab3127b25)) + +# [@discordjs/collection@0.5.0](https://github.com/discordjs/discord.js/compare/@discordjs/collection@0.4.0...@discordjs/collection@0.5.0) - (2022-01-24) + +## Refactor + +- Make `intersect` perform a true intersection (#7211) ([d8efba2](https://github.com/discordjs/discord.js/commit/d8efba24e09aa2a8dbf028fc57a561a56e7833fd)) + +## Typings + +- Add `ReadonlyCollection` (#7245) ([db25f52](https://github.com/discordjs/discord.js/commit/db25f529b26d7c819c1c42ad3e26c2263ea2da0e)) +- **Collection:** Union types on `intersect` and `difference` (#7196) ([1f9b922](https://github.com/discordjs/discord.js/commit/1f9b9225f2066e9cc66c3355417139fd25cc403c)) diff --git a/node_modules/@discordjs/collection/LICENSE b/node_modules/@discordjs/collection/LICENSE new file mode 100644 index 0000000..d21f37a --- /dev/null +++ b/node_modules/@discordjs/collection/LICENSE @@ -0,0 +1,191 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + Copyright 2021 Noel Buechler + Copyright 2015 Amish Shah + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/node_modules/@discordjs/collection/README.md b/node_modules/@discordjs/collection/README.md new file mode 100644 index 0000000..4ddde14 --- /dev/null +++ b/node_modules/@discordjs/collection/README.md @@ -0,0 +1,67 @@ +
+
+

+ discord.js +

+
+

+ Discord server + npm version + npm downloads + Build status + Code coverage +

+

+ Vercel + Cloudflare Workers +

+
+ +## About + +`@discordjs/collection` is a powerful utility data structure used in discord.js. + +## Installation + +**Node.js 16.11.0 or newer is required.** + +```sh +npm install @discordjs/collection +yarn add @discordjs/collection +pnpm add @discordjs/collection +``` + +## Links + +- [Website][website] ([source][website-source]) +- [Documentation][documentation] +- [Guide][guide] ([source][guide-source]) + Also see the v13 to v14 [Update Guide][guide-update], which includes updated and removed items from the library. +- [discord.js Discord server][discord] +- [Discord API Discord server][discord-api] +- [GitHub][source] +- [npm][npm] +- [Related libraries][related-libs] + +## Contributing + +Before creating an issue, please ensure that it hasn't already been reported/suggested, and double-check the +[documentation][documentation]. +See [the contribution guide][contributing] if you'd like to submit a PR. + +## Help + +If you don't understand something in the documentation, you are experiencing problems, or you just need a gentle nudge in the right direction, please don't hesitate to join our official [discord.js Server][discord]. + +[website]: https://discord.js.org +[website-source]: https://github.com/discordjs/discord.js/tree/main/apps/website +[documentation]: https://discord.js.org/docs/packages/collection/stable +[guide]: https://discordjs.guide/ +[guide-source]: https://github.com/discordjs/guide +[guide-update]: https://discordjs.guide/additional-info/changes-in-v14.html +[discord]: https://discord.gg/djs +[discord-api]: https://discord.gg/discord-api +[source]: https://github.com/discordjs/discord.js/tree/main/packages/collection +[npm]: https://www.npmjs.com/package/@discordjs/collection +[related-libs]: https://discord.com/developers/docs/topics/community-resources#libraries +[contributing]: https://github.com/discordjs/discord.js/blob/main/.github/CONTRIBUTING.md diff --git a/node_modules/@discordjs/collection/dist/index.d.mts b/node_modules/@discordjs/collection/dist/index.d.mts new file mode 100644 index 0000000..5990c61 --- /dev/null +++ b/node_modules/@discordjs/collection/dist/index.d.mts @@ -0,0 +1,457 @@ +/** + * @internal + */ +interface CollectionConstructor { + new (): Collection; + new (entries?: readonly (readonly [K, V])[] | null): Collection; + new (iterable: Iterable): Collection; + readonly prototype: Collection; + readonly [Symbol.species]: CollectionConstructor; +} +/** + * Represents an immutable version of a collection + */ +type ReadonlyCollection = Omit, 'delete' | 'ensure' | 'forEach' | 'get' | 'reverse' | 'set' | 'sort' | 'sweep'> & ReadonlyMap; +/** + * Separate interface for the constructor so that emitted js does not have a constructor that overwrites itself + * + * @internal + */ +interface Collection extends Map { + constructor: CollectionConstructor; +} +/** + * A Map with additional utility methods. This is used throughout discord.js rather than Arrays for anything that has + * an ID, for significantly improved performance and ease-of-use. + * + * @typeParam K - The key type this collection holds + * @typeParam V - The value type this collection holds + */ +declare class Collection extends Map { + /** + * Obtains the value of the given key if it exists, otherwise sets and returns the value provided by the default value generator. + * + * @param key - The key to get if it exists, or set otherwise + * @param defaultValueGenerator - A function that generates the default value + * @example + * ```ts + * collection.ensure(guildId, () => defaultGuildConfig); + * ``` + */ + ensure(key: K, defaultValueGenerator: (key: K, collection: this) => V): V; + /** + * Checks if all of the elements exist in the collection. + * + * @param keys - The keys of the elements to check for + * @returns `true` if all of the elements exist, `false` if at least one does not exist. + */ + hasAll(...keys: K[]): boolean; + /** + * Checks if any of the elements exist in the collection. + * + * @param keys - The keys of the elements to check for + * @returns `true` if any of the elements exist, `false` if none exist. + */ + hasAny(...keys: K[]): boolean; + /** + * Obtains the first value(s) in this collection. + * + * @param amount - Amount of values to obtain from the beginning + * @returns A single value if no amount is provided or an array of values, starting from the end if amount is negative + */ + first(): V | undefined; + first(amount: number): V[]; + /** + * Obtains the first key(s) in this collection. + * + * @param amount - Amount of keys to obtain from the beginning + * @returns A single key if no amount is provided or an array of keys, starting from the end if + * amount is negative + */ + firstKey(): K | undefined; + firstKey(amount: number): K[]; + /** + * Obtains the last value(s) in this collection. + * + * @param amount - Amount of values to obtain from the end + * @returns A single value if no amount is provided or an array of values, starting from the start if + * amount is negative + */ + last(): V | undefined; + last(amount: number): V[]; + /** + * Obtains the last key(s) in this collection. + * + * @param amount - Amount of keys to obtain from the end + * @returns A single key if no amount is provided or an array of keys, starting from the start if + * amount is negative + */ + lastKey(): K | undefined; + lastKey(amount: number): K[]; + /** + * Identical to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/at | Array.at()}. + * Returns the item at a given index, allowing for positive and negative integers. + * Negative integers count back from the last item in the collection. + * + * @param index - The index of the element to obtain + */ + at(index: number): V | undefined; + /** + * Identical to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/at | Array.at()}. + * Returns the key at a given index, allowing for positive and negative integers. + * Negative integers count back from the last item in the collection. + * + * @param index - The index of the key to obtain + */ + keyAt(index: number): K | undefined; + /** + * Obtains unique random value(s) from this collection. + * + * @param amount - Amount of values to obtain randomly + * @returns A single value if no amount is provided or an array of values + */ + random(): V | undefined; + random(amount: number): V[]; + /** + * Obtains unique random key(s) from this collection. + * + * @param amount - Amount of keys to obtain randomly + * @returns A single key if no amount is provided or an array + */ + randomKey(): K | undefined; + randomKey(amount: number): K[]; + /** + * Identical to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reverse | Array.reverse()} + * but returns a Collection instead of an Array. + */ + reverse(): this; + /** + * Searches for a single item where the given function returns a truthy value. This behaves like + * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find | Array.find()}. + * All collections used in Discord.js are mapped using their `id` property, and if you want to find by id you + * should use the `get` method. See + * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/get | MDN} for details. + * + * @param fn - The function to test with (should return boolean) + * @param thisArg - Value to use as `this` when executing function + * @example + * ```ts + * collection.find(user => user.username === 'Bob'); + * ``` + */ + find(fn: (value: V, key: K, collection: this) => value is V2): V2 | undefined; + find(fn: (value: V, key: K, collection: this) => unknown): V | undefined; + find(fn: (this: This, value: V, key: K, collection: this) => value is V2, thisArg: This): V2 | undefined; + find(fn: (this: This, value: V, key: K, collection: this) => unknown, thisArg: This): V | undefined; + /** + * Searches for the key of a single item where the given function returns a truthy value. This behaves like + * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/findIndex | Array.findIndex()}, + * but returns the key rather than the positional index. + * + * @param fn - The function to test with (should return boolean) + * @param thisArg - Value to use as `this` when executing function + * @example + * ```ts + * collection.findKey(user => user.username === 'Bob'); + * ``` + */ + findKey(fn: (value: V, key: K, collection: this) => key is K2): K2 | undefined; + findKey(fn: (value: V, key: K, collection: this) => unknown): K | undefined; + findKey(fn: (this: This, value: V, key: K, collection: this) => key is K2, thisArg: This): K2 | undefined; + findKey(fn: (this: This, value: V, key: K, collection: this) => unknown, thisArg: This): K | undefined; + /** + * Removes items that satisfy the provided filter function. + * + * @param fn - Function used to test (should return a boolean) + * @param thisArg - Value to use as `this` when executing function + * @returns The number of removed entries + */ + sweep(fn: (value: V, key: K, collection: this) => unknown): number; + sweep(fn: (this: T, value: V, key: K, collection: this) => unknown, thisArg: T): number; + /** + * Identical to + * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter | Array.filter()}, + * but returns a Collection instead of an Array. + * + * @param fn - The function to test with (should return boolean) + * @param thisArg - Value to use as `this` when executing function + * @example + * ```ts + * collection.filter(user => user.username === 'Bob'); + * ``` + */ + filter(fn: (value: V, key: K, collection: this) => key is K2): Collection; + filter(fn: (value: V, key: K, collection: this) => value is V2): Collection; + filter(fn: (value: V, key: K, collection: this) => unknown): Collection; + filter(fn: (this: This, value: V, key: K, collection: this) => key is K2, thisArg: This): Collection; + filter(fn: (this: This, value: V, key: K, collection: this) => value is V2, thisArg: This): Collection; + filter(fn: (this: This, value: V, key: K, collection: this) => unknown, thisArg: This): Collection; + /** + * Partitions the collection into two collections where the first collection + * contains the items that passed and the second contains the items that failed. + * + * @param fn - Function used to test (should return a boolean) + * @param thisArg - Value to use as `this` when executing function + * @example + * ```ts + * const [big, small] = collection.partition(guild => guild.memberCount > 250); + * ``` + */ + partition(fn: (value: V, key: K, collection: this) => key is K2): [Collection, Collection, V>]; + partition(fn: (value: V, key: K, collection: this) => value is V2): [Collection, Collection>]; + partition(fn: (value: V, key: K, collection: this) => unknown): [Collection, Collection]; + partition(fn: (this: This, value: V, key: K, collection: this) => key is K2, thisArg: This): [Collection, Collection, V>]; + partition(fn: (this: This, value: V, key: K, collection: this) => value is V2, thisArg: This): [Collection, Collection>]; + partition(fn: (this: This, value: V, key: K, collection: this) => unknown, thisArg: This): [Collection, Collection]; + /** + * Maps each item into a Collection, then joins the results into a single Collection. Identical in behavior to + * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/flatMap | Array.flatMap()}. + * + * @param fn - Function that produces a new Collection + * @param thisArg - Value to use as `this` when executing function + * @example + * ```ts + * collection.flatMap(guild => guild.members.cache); + * ``` + */ + flatMap(fn: (value: V, key: K, collection: this) => Collection): Collection; + flatMap(fn: (this: This, value: V, key: K, collection: this) => Collection, thisArg: This): Collection; + /** + * Maps each item to another value into an array. Identical in behavior to + * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map | Array.map()}. + * + * @param fn - Function that produces an element of the new array, taking three arguments + * @param thisArg - Value to use as `this` when executing function + * @example + * ```ts + * collection.map(user => user.tag); + * ``` + */ + map(fn: (value: V, key: K, collection: this) => T): T[]; + map(fn: (this: This, value: V, key: K, collection: this) => T, thisArg: This): T[]; + /** + * Maps each item to another value into a collection. Identical in behavior to + * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map | Array.map()}. + * + * @param fn - Function that produces an element of the new collection, taking three arguments + * @param thisArg - Value to use as `this` when executing function + * @example + * ```ts + * collection.mapValues(user => user.tag); + * ``` + */ + mapValues(fn: (value: V, key: K, collection: this) => T): Collection; + mapValues(fn: (this: This, value: V, key: K, collection: this) => T, thisArg: This): Collection; + /** + * Checks if there exists an item that passes a test. Identical in behavior to + * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some | Array.some()}. + * + * @param fn - Function used to test (should return a boolean) + * @param thisArg - Value to use as `this` when executing function + * @example + * ```ts + * collection.some(user => user.discriminator === '0000'); + * ``` + */ + some(fn: (value: V, key: K, collection: this) => unknown): boolean; + some(fn: (this: T, value: V, key: K, collection: this) => unknown, thisArg: T): boolean; + /** + * Checks if all items passes a test. Identical in behavior to + * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/every | Array.every()}. + * + * @param fn - Function used to test (should return a boolean) + * @param thisArg - Value to use as `this` when executing function + * @example + * ```ts + * collection.every(user => !user.bot); + * ``` + */ + every(fn: (value: V, key: K, collection: this) => key is K2): this is Collection; + every(fn: (value: V, key: K, collection: this) => value is V2): this is Collection; + every(fn: (value: V, key: K, collection: this) => unknown): boolean; + every(fn: (this: This, value: V, key: K, collection: this) => key is K2, thisArg: This): this is Collection; + every(fn: (this: This, value: V, key: K, collection: this) => value is V2, thisArg: This): this is Collection; + every(fn: (this: This, value: V, key: K, collection: this) => unknown, thisArg: This): boolean; + /** + * Applies a function to produce a single value. Identical in behavior to + * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce | Array.reduce()}. + * + * @param fn - Function used to reduce, taking four arguments; `accumulator`, `currentValue`, `currentKey`, + * and `collection` + * @param initialValue - Starting value for the accumulator + * @example + * ```ts + * collection.reduce((acc, guild) => acc + guild.memberCount, 0); + * ``` + */ + reduce(fn: (accumulator: T, value: V, key: K, collection: this) => T, initialValue?: T): T; + /** + * Identical to + * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/forEach | Map.forEach()}, + * but returns the collection instead of undefined. + * + * @param fn - Function to execute for each element + * @param thisArg - Value to use as `this` when executing function + * @example + * ```ts + * collection + * .each(user => console.log(user.username)) + * .filter(user => user.bot) + * .each(user => console.log(user.username)); + * ``` + */ + each(fn: (value: V, key: K, collection: this) => void): this; + each(fn: (this: T, value: V, key: K, collection: this) => void, thisArg: T): this; + /** + * Runs a function on the collection and returns the collection. + * + * @param fn - Function to execute + * @param thisArg - Value to use as `this` when executing function + * @example + * ```ts + * collection + * .tap(coll => console.log(coll.size)) + * .filter(user => user.bot) + * .tap(coll => console.log(coll.size)) + * ``` + */ + tap(fn: (collection: this) => void): this; + tap(fn: (this: T, collection: this) => void, thisArg: T): this; + /** + * Creates an identical shallow copy of this collection. + * + * @example + * ```ts + * const newColl = someColl.clone(); + * ``` + */ + clone(): Collection; + /** + * Combines this collection with others into a new collection. None of the source collections are modified. + * + * @param collections - Collections to merge + * @example + * ```ts + * const newColl = someColl.concat(someOtherColl, anotherColl, ohBoyAColl); + * ``` + */ + concat(...collections: ReadonlyCollection[]): Collection; + /** + * Checks if this collection shares identical items with another. + * This is different to checking for equality using equal-signs, because + * the collections may be different objects, but contain the same data. + * + * @param collection - Collection to compare with + * @returns Whether the collections have identical contents + */ + equals(collection: ReadonlyCollection): boolean; + /** + * The sort method sorts the items of a collection in place and returns it. + * The sort is not necessarily stable in Node 10 or older. + * The default sort order is according to string Unicode code points. + * + * @param compareFunction - Specifies a function that defines the sort order. + * If omitted, the collection is sorted according to each character's Unicode code point value, according to the string conversion of each element. + * @example + * ```ts + * collection.sort((userA, userB) => userA.createdTimestamp - userB.createdTimestamp); + * ``` + */ + sort(compareFunction?: Comparator): this; + /** + * The intersect method returns a new structure containing items where the keys and values are present in both original structures. + * + * @param other - The other Collection to filter against + */ + intersect(other: ReadonlyCollection): Collection; + /** + * The subtract method returns a new structure containing items where the keys and values of the original structure are not present in the other. + * + * @param other - The other Collection to filter against + */ + subtract(other: ReadonlyCollection): Collection; + /** + * The difference method returns a new structure containing items where the key is present in one of the original structures but not the other. + * + * @param other - The other Collection to filter against + */ + difference(other: ReadonlyCollection): Collection; + /** + * Merges two Collections together into a new Collection. + * + * @param other - The other Collection to merge with + * @param whenInSelf - Function getting the result if the entry only exists in this Collection + * @param whenInOther - Function getting the result if the entry only exists in the other Collection + * @param whenInBoth - Function getting the result if the entry exists in both Collections + * @example + * ```ts + * // Sums up the entries in two collections. + * coll.merge( + * other, + * x => ({ keep: true, value: x }), + * y => ({ keep: true, value: y }), + * (x, y) => ({ keep: true, value: x + y }), + * ); + * ``` + * @example + * ```ts + * // Intersects two collections in a left-biased manner. + * coll.merge( + * other, + * x => ({ keep: false }), + * y => ({ keep: false }), + * (x, _) => ({ keep: true, value: x }), + * ); + * ``` + */ + merge(other: ReadonlyCollection, whenInSelf: (value: V, key: K) => Keep, whenInOther: (valueOther: T, key: K) => Keep, whenInBoth: (value: V, valueOther: T, key: K) => Keep): Collection; + /** + * The sorted method sorts the items of a collection and returns it. + * The sort is not necessarily stable in Node 10 or older. + * The default sort order is according to string Unicode code points. + * + * @param compareFunction - Specifies a function that defines the sort order. + * If omitted, the collection is sorted according to each character's Unicode code point value, + * according to the string conversion of each element. + * @example + * ```ts + * collection.sorted((userA, userB) => userA.createdTimestamp - userB.createdTimestamp); + * ``` + */ + sorted(compareFunction?: Comparator): Collection; + toJSON(): V[]; + private static defaultSort; + /** + * Creates a Collection from a list of entries. + * + * @param entries - The list of entries + * @param combine - Function to combine an existing entry with a new one + * @example + * ```ts + * Collection.combineEntries([["a", 1], ["b", 2], ["a", 2]], (x, y) => x + y); + * // returns Collection { "a" => 3, "b" => 2 } + * ``` + */ + static combineEntries(entries: Iterable<[K, V]>, combine: (firstValue: V, secondValue: V, key: K) => V): Collection; +} +/** + * @internal + */ +type Keep = { + keep: false; +} | { + keep: true; + value: V; +}; +/** + * @internal + */ +type Comparator = (firstValue: V, secondValue: V, firstKey: K, secondKey: K) => number; + +/** + * The {@link https://github.com/discordjs/discord.js/blob/main/packages/collection/#readme | @discordjs/collection} version + * that you are currently using. + */ +declare const version: string; + +export { Collection, CollectionConstructor, Comparator, Keep, ReadonlyCollection, version }; diff --git a/node_modules/@discordjs/collection/dist/index.d.ts b/node_modules/@discordjs/collection/dist/index.d.ts new file mode 100644 index 0000000..5990c61 --- /dev/null +++ b/node_modules/@discordjs/collection/dist/index.d.ts @@ -0,0 +1,457 @@ +/** + * @internal + */ +interface CollectionConstructor { + new (): Collection; + new (entries?: readonly (readonly [K, V])[] | null): Collection; + new (iterable: Iterable): Collection; + readonly prototype: Collection; + readonly [Symbol.species]: CollectionConstructor; +} +/** + * Represents an immutable version of a collection + */ +type ReadonlyCollection = Omit, 'delete' | 'ensure' | 'forEach' | 'get' | 'reverse' | 'set' | 'sort' | 'sweep'> & ReadonlyMap; +/** + * Separate interface for the constructor so that emitted js does not have a constructor that overwrites itself + * + * @internal + */ +interface Collection extends Map { + constructor: CollectionConstructor; +} +/** + * A Map with additional utility methods. This is used throughout discord.js rather than Arrays for anything that has + * an ID, for significantly improved performance and ease-of-use. + * + * @typeParam K - The key type this collection holds + * @typeParam V - The value type this collection holds + */ +declare class Collection extends Map { + /** + * Obtains the value of the given key if it exists, otherwise sets and returns the value provided by the default value generator. + * + * @param key - The key to get if it exists, or set otherwise + * @param defaultValueGenerator - A function that generates the default value + * @example + * ```ts + * collection.ensure(guildId, () => defaultGuildConfig); + * ``` + */ + ensure(key: K, defaultValueGenerator: (key: K, collection: this) => V): V; + /** + * Checks if all of the elements exist in the collection. + * + * @param keys - The keys of the elements to check for + * @returns `true` if all of the elements exist, `false` if at least one does not exist. + */ + hasAll(...keys: K[]): boolean; + /** + * Checks if any of the elements exist in the collection. + * + * @param keys - The keys of the elements to check for + * @returns `true` if any of the elements exist, `false` if none exist. + */ + hasAny(...keys: K[]): boolean; + /** + * Obtains the first value(s) in this collection. + * + * @param amount - Amount of values to obtain from the beginning + * @returns A single value if no amount is provided or an array of values, starting from the end if amount is negative + */ + first(): V | undefined; + first(amount: number): V[]; + /** + * Obtains the first key(s) in this collection. + * + * @param amount - Amount of keys to obtain from the beginning + * @returns A single key if no amount is provided or an array of keys, starting from the end if + * amount is negative + */ + firstKey(): K | undefined; + firstKey(amount: number): K[]; + /** + * Obtains the last value(s) in this collection. + * + * @param amount - Amount of values to obtain from the end + * @returns A single value if no amount is provided or an array of values, starting from the start if + * amount is negative + */ + last(): V | undefined; + last(amount: number): V[]; + /** + * Obtains the last key(s) in this collection. + * + * @param amount - Amount of keys to obtain from the end + * @returns A single key if no amount is provided or an array of keys, starting from the start if + * amount is negative + */ + lastKey(): K | undefined; + lastKey(amount: number): K[]; + /** + * Identical to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/at | Array.at()}. + * Returns the item at a given index, allowing for positive and negative integers. + * Negative integers count back from the last item in the collection. + * + * @param index - The index of the element to obtain + */ + at(index: number): V | undefined; + /** + * Identical to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/at | Array.at()}. + * Returns the key at a given index, allowing for positive and negative integers. + * Negative integers count back from the last item in the collection. + * + * @param index - The index of the key to obtain + */ + keyAt(index: number): K | undefined; + /** + * Obtains unique random value(s) from this collection. + * + * @param amount - Amount of values to obtain randomly + * @returns A single value if no amount is provided or an array of values + */ + random(): V | undefined; + random(amount: number): V[]; + /** + * Obtains unique random key(s) from this collection. + * + * @param amount - Amount of keys to obtain randomly + * @returns A single key if no amount is provided or an array + */ + randomKey(): K | undefined; + randomKey(amount: number): K[]; + /** + * Identical to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reverse | Array.reverse()} + * but returns a Collection instead of an Array. + */ + reverse(): this; + /** + * Searches for a single item where the given function returns a truthy value. This behaves like + * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find | Array.find()}. + * All collections used in Discord.js are mapped using their `id` property, and if you want to find by id you + * should use the `get` method. See + * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/get | MDN} for details. + * + * @param fn - The function to test with (should return boolean) + * @param thisArg - Value to use as `this` when executing function + * @example + * ```ts + * collection.find(user => user.username === 'Bob'); + * ``` + */ + find(fn: (value: V, key: K, collection: this) => value is V2): V2 | undefined; + find(fn: (value: V, key: K, collection: this) => unknown): V | undefined; + find(fn: (this: This, value: V, key: K, collection: this) => value is V2, thisArg: This): V2 | undefined; + find(fn: (this: This, value: V, key: K, collection: this) => unknown, thisArg: This): V | undefined; + /** + * Searches for the key of a single item where the given function returns a truthy value. This behaves like + * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/findIndex | Array.findIndex()}, + * but returns the key rather than the positional index. + * + * @param fn - The function to test with (should return boolean) + * @param thisArg - Value to use as `this` when executing function + * @example + * ```ts + * collection.findKey(user => user.username === 'Bob'); + * ``` + */ + findKey(fn: (value: V, key: K, collection: this) => key is K2): K2 | undefined; + findKey(fn: (value: V, key: K, collection: this) => unknown): K | undefined; + findKey(fn: (this: This, value: V, key: K, collection: this) => key is K2, thisArg: This): K2 | undefined; + findKey(fn: (this: This, value: V, key: K, collection: this) => unknown, thisArg: This): K | undefined; + /** + * Removes items that satisfy the provided filter function. + * + * @param fn - Function used to test (should return a boolean) + * @param thisArg - Value to use as `this` when executing function + * @returns The number of removed entries + */ + sweep(fn: (value: V, key: K, collection: this) => unknown): number; + sweep(fn: (this: T, value: V, key: K, collection: this) => unknown, thisArg: T): number; + /** + * Identical to + * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter | Array.filter()}, + * but returns a Collection instead of an Array. + * + * @param fn - The function to test with (should return boolean) + * @param thisArg - Value to use as `this` when executing function + * @example + * ```ts + * collection.filter(user => user.username === 'Bob'); + * ``` + */ + filter(fn: (value: V, key: K, collection: this) => key is K2): Collection; + filter(fn: (value: V, key: K, collection: this) => value is V2): Collection; + filter(fn: (value: V, key: K, collection: this) => unknown): Collection; + filter(fn: (this: This, value: V, key: K, collection: this) => key is K2, thisArg: This): Collection; + filter(fn: (this: This, value: V, key: K, collection: this) => value is V2, thisArg: This): Collection; + filter(fn: (this: This, value: V, key: K, collection: this) => unknown, thisArg: This): Collection; + /** + * Partitions the collection into two collections where the first collection + * contains the items that passed and the second contains the items that failed. + * + * @param fn - Function used to test (should return a boolean) + * @param thisArg - Value to use as `this` when executing function + * @example + * ```ts + * const [big, small] = collection.partition(guild => guild.memberCount > 250); + * ``` + */ + partition(fn: (value: V, key: K, collection: this) => key is K2): [Collection, Collection, V>]; + partition(fn: (value: V, key: K, collection: this) => value is V2): [Collection, Collection>]; + partition(fn: (value: V, key: K, collection: this) => unknown): [Collection, Collection]; + partition(fn: (this: This, value: V, key: K, collection: this) => key is K2, thisArg: This): [Collection, Collection, V>]; + partition(fn: (this: This, value: V, key: K, collection: this) => value is V2, thisArg: This): [Collection, Collection>]; + partition(fn: (this: This, value: V, key: K, collection: this) => unknown, thisArg: This): [Collection, Collection]; + /** + * Maps each item into a Collection, then joins the results into a single Collection. Identical in behavior to + * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/flatMap | Array.flatMap()}. + * + * @param fn - Function that produces a new Collection + * @param thisArg - Value to use as `this` when executing function + * @example + * ```ts + * collection.flatMap(guild => guild.members.cache); + * ``` + */ + flatMap(fn: (value: V, key: K, collection: this) => Collection): Collection; + flatMap(fn: (this: This, value: V, key: K, collection: this) => Collection, thisArg: This): Collection; + /** + * Maps each item to another value into an array. Identical in behavior to + * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map | Array.map()}. + * + * @param fn - Function that produces an element of the new array, taking three arguments + * @param thisArg - Value to use as `this` when executing function + * @example + * ```ts + * collection.map(user => user.tag); + * ``` + */ + map(fn: (value: V, key: K, collection: this) => T): T[]; + map(fn: (this: This, value: V, key: K, collection: this) => T, thisArg: This): T[]; + /** + * Maps each item to another value into a collection. Identical in behavior to + * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map | Array.map()}. + * + * @param fn - Function that produces an element of the new collection, taking three arguments + * @param thisArg - Value to use as `this` when executing function + * @example + * ```ts + * collection.mapValues(user => user.tag); + * ``` + */ + mapValues(fn: (value: V, key: K, collection: this) => T): Collection; + mapValues(fn: (this: This, value: V, key: K, collection: this) => T, thisArg: This): Collection; + /** + * Checks if there exists an item that passes a test. Identical in behavior to + * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some | Array.some()}. + * + * @param fn - Function used to test (should return a boolean) + * @param thisArg - Value to use as `this` when executing function + * @example + * ```ts + * collection.some(user => user.discriminator === '0000'); + * ``` + */ + some(fn: (value: V, key: K, collection: this) => unknown): boolean; + some(fn: (this: T, value: V, key: K, collection: this) => unknown, thisArg: T): boolean; + /** + * Checks if all items passes a test. Identical in behavior to + * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/every | Array.every()}. + * + * @param fn - Function used to test (should return a boolean) + * @param thisArg - Value to use as `this` when executing function + * @example + * ```ts + * collection.every(user => !user.bot); + * ``` + */ + every(fn: (value: V, key: K, collection: this) => key is K2): this is Collection; + every(fn: (value: V, key: K, collection: this) => value is V2): this is Collection; + every(fn: (value: V, key: K, collection: this) => unknown): boolean; + every(fn: (this: This, value: V, key: K, collection: this) => key is K2, thisArg: This): this is Collection; + every(fn: (this: This, value: V, key: K, collection: this) => value is V2, thisArg: This): this is Collection; + every(fn: (this: This, value: V, key: K, collection: this) => unknown, thisArg: This): boolean; + /** + * Applies a function to produce a single value. Identical in behavior to + * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce | Array.reduce()}. + * + * @param fn - Function used to reduce, taking four arguments; `accumulator`, `currentValue`, `currentKey`, + * and `collection` + * @param initialValue - Starting value for the accumulator + * @example + * ```ts + * collection.reduce((acc, guild) => acc + guild.memberCount, 0); + * ``` + */ + reduce(fn: (accumulator: T, value: V, key: K, collection: this) => T, initialValue?: T): T; + /** + * Identical to + * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/forEach | Map.forEach()}, + * but returns the collection instead of undefined. + * + * @param fn - Function to execute for each element + * @param thisArg - Value to use as `this` when executing function + * @example + * ```ts + * collection + * .each(user => console.log(user.username)) + * .filter(user => user.bot) + * .each(user => console.log(user.username)); + * ``` + */ + each(fn: (value: V, key: K, collection: this) => void): this; + each(fn: (this: T, value: V, key: K, collection: this) => void, thisArg: T): this; + /** + * Runs a function on the collection and returns the collection. + * + * @param fn - Function to execute + * @param thisArg - Value to use as `this` when executing function + * @example + * ```ts + * collection + * .tap(coll => console.log(coll.size)) + * .filter(user => user.bot) + * .tap(coll => console.log(coll.size)) + * ``` + */ + tap(fn: (collection: this) => void): this; + tap(fn: (this: T, collection: this) => void, thisArg: T): this; + /** + * Creates an identical shallow copy of this collection. + * + * @example + * ```ts + * const newColl = someColl.clone(); + * ``` + */ + clone(): Collection; + /** + * Combines this collection with others into a new collection. None of the source collections are modified. + * + * @param collections - Collections to merge + * @example + * ```ts + * const newColl = someColl.concat(someOtherColl, anotherColl, ohBoyAColl); + * ``` + */ + concat(...collections: ReadonlyCollection[]): Collection; + /** + * Checks if this collection shares identical items with another. + * This is different to checking for equality using equal-signs, because + * the collections may be different objects, but contain the same data. + * + * @param collection - Collection to compare with + * @returns Whether the collections have identical contents + */ + equals(collection: ReadonlyCollection): boolean; + /** + * The sort method sorts the items of a collection in place and returns it. + * The sort is not necessarily stable in Node 10 or older. + * The default sort order is according to string Unicode code points. + * + * @param compareFunction - Specifies a function that defines the sort order. + * If omitted, the collection is sorted according to each character's Unicode code point value, according to the string conversion of each element. + * @example + * ```ts + * collection.sort((userA, userB) => userA.createdTimestamp - userB.createdTimestamp); + * ``` + */ + sort(compareFunction?: Comparator): this; + /** + * The intersect method returns a new structure containing items where the keys and values are present in both original structures. + * + * @param other - The other Collection to filter against + */ + intersect(other: ReadonlyCollection): Collection; + /** + * The subtract method returns a new structure containing items where the keys and values of the original structure are not present in the other. + * + * @param other - The other Collection to filter against + */ + subtract(other: ReadonlyCollection): Collection; + /** + * The difference method returns a new structure containing items where the key is present in one of the original structures but not the other. + * + * @param other - The other Collection to filter against + */ + difference(other: ReadonlyCollection): Collection; + /** + * Merges two Collections together into a new Collection. + * + * @param other - The other Collection to merge with + * @param whenInSelf - Function getting the result if the entry only exists in this Collection + * @param whenInOther - Function getting the result if the entry only exists in the other Collection + * @param whenInBoth - Function getting the result if the entry exists in both Collections + * @example + * ```ts + * // Sums up the entries in two collections. + * coll.merge( + * other, + * x => ({ keep: true, value: x }), + * y => ({ keep: true, value: y }), + * (x, y) => ({ keep: true, value: x + y }), + * ); + * ``` + * @example + * ```ts + * // Intersects two collections in a left-biased manner. + * coll.merge( + * other, + * x => ({ keep: false }), + * y => ({ keep: false }), + * (x, _) => ({ keep: true, value: x }), + * ); + * ``` + */ + merge(other: ReadonlyCollection, whenInSelf: (value: V, key: K) => Keep, whenInOther: (valueOther: T, key: K) => Keep, whenInBoth: (value: V, valueOther: T, key: K) => Keep): Collection; + /** + * The sorted method sorts the items of a collection and returns it. + * The sort is not necessarily stable in Node 10 or older. + * The default sort order is according to string Unicode code points. + * + * @param compareFunction - Specifies a function that defines the sort order. + * If omitted, the collection is sorted according to each character's Unicode code point value, + * according to the string conversion of each element. + * @example + * ```ts + * collection.sorted((userA, userB) => userA.createdTimestamp - userB.createdTimestamp); + * ``` + */ + sorted(compareFunction?: Comparator): Collection; + toJSON(): V[]; + private static defaultSort; + /** + * Creates a Collection from a list of entries. + * + * @param entries - The list of entries + * @param combine - Function to combine an existing entry with a new one + * @example + * ```ts + * Collection.combineEntries([["a", 1], ["b", 2], ["a", 2]], (x, y) => x + y); + * // returns Collection { "a" => 3, "b" => 2 } + * ``` + */ + static combineEntries(entries: Iterable<[K, V]>, combine: (firstValue: V, secondValue: V, key: K) => V): Collection; +} +/** + * @internal + */ +type Keep = { + keep: false; +} | { + keep: true; + value: V; +}; +/** + * @internal + */ +type Comparator = (firstValue: V, secondValue: V, firstKey: K, secondKey: K) => number; + +/** + * The {@link https://github.com/discordjs/discord.js/blob/main/packages/collection/#readme | @discordjs/collection} version + * that you are currently using. + */ +declare const version: string; + +export { Collection, CollectionConstructor, Comparator, Keep, ReadonlyCollection, version }; diff --git a/node_modules/@discordjs/collection/dist/index.js b/node_modules/@discordjs/collection/dist/index.js new file mode 100644 index 0000000..d9379ea --- /dev/null +++ b/node_modules/@discordjs/collection/dist/index.js @@ -0,0 +1,543 @@ +"use strict"; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// src/index.ts +var src_exports = {}; +__export(src_exports, { + Collection: () => Collection, + version: () => version +}); +module.exports = __toCommonJS(src_exports); + +// src/collection.ts +var Collection = class _Collection extends Map { + static { + __name(this, "Collection"); + } + /** + * Obtains the value of the given key if it exists, otherwise sets and returns the value provided by the default value generator. + * + * @param key - The key to get if it exists, or set otherwise + * @param defaultValueGenerator - A function that generates the default value + * @example + * ```ts + * collection.ensure(guildId, () => defaultGuildConfig); + * ``` + */ + ensure(key, defaultValueGenerator) { + if (this.has(key)) + return this.get(key); + if (typeof defaultValueGenerator !== "function") + throw new TypeError(`${defaultValueGenerator} is not a function`); + const defaultValue = defaultValueGenerator(key, this); + this.set(key, defaultValue); + return defaultValue; + } + /** + * Checks if all of the elements exist in the collection. + * + * @param keys - The keys of the elements to check for + * @returns `true` if all of the elements exist, `false` if at least one does not exist. + */ + hasAll(...keys) { + return keys.every((key) => super.has(key)); + } + /** + * Checks if any of the elements exist in the collection. + * + * @param keys - The keys of the elements to check for + * @returns `true` if any of the elements exist, `false` if none exist. + */ + hasAny(...keys) { + return keys.some((key) => super.has(key)); + } + first(amount) { + if (amount === void 0) + return this.values().next().value; + if (amount < 0) + return this.last(amount * -1); + amount = Math.min(this.size, amount); + const iter = this.values(); + return Array.from({ length: amount }, () => iter.next().value); + } + firstKey(amount) { + if (amount === void 0) + return this.keys().next().value; + if (amount < 0) + return this.lastKey(amount * -1); + amount = Math.min(this.size, amount); + const iter = this.keys(); + return Array.from({ length: amount }, () => iter.next().value); + } + last(amount) { + const arr = [...this.values()]; + if (amount === void 0) + return arr[arr.length - 1]; + if (amount < 0) + return this.first(amount * -1); + if (!amount) + return []; + return arr.slice(-amount); + } + lastKey(amount) { + const arr = [...this.keys()]; + if (amount === void 0) + return arr[arr.length - 1]; + if (amount < 0) + return this.firstKey(amount * -1); + if (!amount) + return []; + return arr.slice(-amount); + } + /** + * Identical to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/at | Array.at()}. + * Returns the item at a given index, allowing for positive and negative integers. + * Negative integers count back from the last item in the collection. + * + * @param index - The index of the element to obtain + */ + at(index) { + index = Math.floor(index); + const arr = [...this.values()]; + return arr.at(index); + } + /** + * Identical to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/at | Array.at()}. + * Returns the key at a given index, allowing for positive and negative integers. + * Negative integers count back from the last item in the collection. + * + * @param index - The index of the key to obtain + */ + keyAt(index) { + index = Math.floor(index); + const arr = [...this.keys()]; + return arr.at(index); + } + random(amount) { + const arr = [...this.values()]; + if (amount === void 0) + return arr[Math.floor(Math.random() * arr.length)]; + if (!arr.length || !amount) + return []; + return Array.from( + { length: Math.min(amount, arr.length) }, + () => arr.splice(Math.floor(Math.random() * arr.length), 1)[0] + ); + } + randomKey(amount) { + const arr = [...this.keys()]; + if (amount === void 0) + return arr[Math.floor(Math.random() * arr.length)]; + if (!arr.length || !amount) + return []; + return Array.from( + { length: Math.min(amount, arr.length) }, + () => arr.splice(Math.floor(Math.random() * arr.length), 1)[0] + ); + } + /** + * Identical to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reverse | Array.reverse()} + * but returns a Collection instead of an Array. + */ + reverse() { + const entries = [...this.entries()].reverse(); + this.clear(); + for (const [key, value] of entries) + this.set(key, value); + return this; + } + find(fn, thisArg) { + if (typeof fn !== "function") + throw new TypeError(`${fn} is not a function`); + if (thisArg !== void 0) + fn = fn.bind(thisArg); + for (const [key, val] of this) { + if (fn(val, key, this)) + return val; + } + return void 0; + } + findKey(fn, thisArg) { + if (typeof fn !== "function") + throw new TypeError(`${fn} is not a function`); + if (thisArg !== void 0) + fn = fn.bind(thisArg); + for (const [key, val] of this) { + if (fn(val, key, this)) + return key; + } + return void 0; + } + sweep(fn, thisArg) { + if (typeof fn !== "function") + throw new TypeError(`${fn} is not a function`); + if (thisArg !== void 0) + fn = fn.bind(thisArg); + const previousSize = this.size; + for (const [key, val] of this) { + if (fn(val, key, this)) + this.delete(key); + } + return previousSize - this.size; + } + filter(fn, thisArg) { + if (typeof fn !== "function") + throw new TypeError(`${fn} is not a function`); + if (thisArg !== void 0) + fn = fn.bind(thisArg); + const results = new this.constructor[Symbol.species](); + for (const [key, val] of this) { + if (fn(val, key, this)) + results.set(key, val); + } + return results; + } + partition(fn, thisArg) { + if (typeof fn !== "function") + throw new TypeError(`${fn} is not a function`); + if (thisArg !== void 0) + fn = fn.bind(thisArg); + const results = [ + new this.constructor[Symbol.species](), + new this.constructor[Symbol.species]() + ]; + for (const [key, val] of this) { + if (fn(val, key, this)) { + results[0].set(key, val); + } else { + results[1].set(key, val); + } + } + return results; + } + flatMap(fn, thisArg) { + const collections = this.map(fn, thisArg); + return new this.constructor[Symbol.species]().concat(...collections); + } + map(fn, thisArg) { + if (typeof fn !== "function") + throw new TypeError(`${fn} is not a function`); + if (thisArg !== void 0) + fn = fn.bind(thisArg); + const iter = this.entries(); + return Array.from({ length: this.size }, () => { + const [key, value] = iter.next().value; + return fn(value, key, this); + }); + } + mapValues(fn, thisArg) { + if (typeof fn !== "function") + throw new TypeError(`${fn} is not a function`); + if (thisArg !== void 0) + fn = fn.bind(thisArg); + const coll = new this.constructor[Symbol.species](); + for (const [key, val] of this) + coll.set(key, fn(val, key, this)); + return coll; + } + some(fn, thisArg) { + if (typeof fn !== "function") + throw new TypeError(`${fn} is not a function`); + if (thisArg !== void 0) + fn = fn.bind(thisArg); + for (const [key, val] of this) { + if (fn(val, key, this)) + return true; + } + return false; + } + every(fn, thisArg) { + if (typeof fn !== "function") + throw new TypeError(`${fn} is not a function`); + if (thisArg !== void 0) + fn = fn.bind(thisArg); + for (const [key, val] of this) { + if (!fn(val, key, this)) + return false; + } + return true; + } + /** + * Applies a function to produce a single value. Identical in behavior to + * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce | Array.reduce()}. + * + * @param fn - Function used to reduce, taking four arguments; `accumulator`, `currentValue`, `currentKey`, + * and `collection` + * @param initialValue - Starting value for the accumulator + * @example + * ```ts + * collection.reduce((acc, guild) => acc + guild.memberCount, 0); + * ``` + */ + reduce(fn, initialValue) { + if (typeof fn !== "function") + throw new TypeError(`${fn} is not a function`); + let accumulator; + const iterator = this.entries(); + if (initialValue === void 0) { + if (this.size === 0) + throw new TypeError("Reduce of empty collection with no initial value"); + accumulator = iterator.next().value[1]; + } else { + accumulator = initialValue; + } + for (const [key, value] of iterator) { + accumulator = fn(accumulator, value, key, this); + } + return accumulator; + } + each(fn, thisArg) { + if (typeof fn !== "function") + throw new TypeError(`${fn} is not a function`); + if (thisArg !== void 0) + fn = fn.bind(thisArg); + for (const [key, value] of this) { + fn(value, key, this); + } + return this; + } + tap(fn, thisArg) { + if (typeof fn !== "function") + throw new TypeError(`${fn} is not a function`); + if (thisArg !== void 0) + fn = fn.bind(thisArg); + fn(this); + return this; + } + /** + * Creates an identical shallow copy of this collection. + * + * @example + * ```ts + * const newColl = someColl.clone(); + * ``` + */ + clone() { + return new this.constructor[Symbol.species](this); + } + /** + * Combines this collection with others into a new collection. None of the source collections are modified. + * + * @param collections - Collections to merge + * @example + * ```ts + * const newColl = someColl.concat(someOtherColl, anotherColl, ohBoyAColl); + * ``` + */ + concat(...collections) { + const newColl = this.clone(); + for (const coll of collections) { + for (const [key, val] of coll) + newColl.set(key, val); + } + return newColl; + } + /** + * Checks if this collection shares identical items with another. + * This is different to checking for equality using equal-signs, because + * the collections may be different objects, but contain the same data. + * + * @param collection - Collection to compare with + * @returns Whether the collections have identical contents + */ + equals(collection) { + if (!collection) + return false; + if (this === collection) + return true; + if (this.size !== collection.size) + return false; + for (const [key, value] of this) { + if (!collection.has(key) || value !== collection.get(key)) { + return false; + } + } + return true; + } + /** + * The sort method sorts the items of a collection in place and returns it. + * The sort is not necessarily stable in Node 10 or older. + * The default sort order is according to string Unicode code points. + * + * @param compareFunction - Specifies a function that defines the sort order. + * If omitted, the collection is sorted according to each character's Unicode code point value, according to the string conversion of each element. + * @example + * ```ts + * collection.sort((userA, userB) => userA.createdTimestamp - userB.createdTimestamp); + * ``` + */ + sort(compareFunction = _Collection.defaultSort) { + const entries = [...this.entries()]; + entries.sort((a, b) => compareFunction(a[1], b[1], a[0], b[0])); + super.clear(); + for (const [key, value] of entries) { + super.set(key, value); + } + return this; + } + /** + * The intersect method returns a new structure containing items where the keys and values are present in both original structures. + * + * @param other - The other Collection to filter against + */ + intersect(other) { + const coll = new this.constructor[Symbol.species](); + for (const [key, value] of other) { + if (this.has(key) && Object.is(value, this.get(key))) { + coll.set(key, value); + } + } + return coll; + } + /** + * The subtract method returns a new structure containing items where the keys and values of the original structure are not present in the other. + * + * @param other - The other Collection to filter against + */ + subtract(other) { + const coll = new this.constructor[Symbol.species](); + for (const [key, value] of this) { + if (!other.has(key) || !Object.is(value, other.get(key))) { + coll.set(key, value); + } + } + return coll; + } + /** + * The difference method returns a new structure containing items where the key is present in one of the original structures but not the other. + * + * @param other - The other Collection to filter against + */ + difference(other) { + const coll = new this.constructor[Symbol.species](); + for (const [key, value] of other) { + if (!this.has(key)) + coll.set(key, value); + } + for (const [key, value] of this) { + if (!other.has(key)) + coll.set(key, value); + } + return coll; + } + /** + * Merges two Collections together into a new Collection. + * + * @param other - The other Collection to merge with + * @param whenInSelf - Function getting the result if the entry only exists in this Collection + * @param whenInOther - Function getting the result if the entry only exists in the other Collection + * @param whenInBoth - Function getting the result if the entry exists in both Collections + * @example + * ```ts + * // Sums up the entries in two collections. + * coll.merge( + * other, + * x => ({ keep: true, value: x }), + * y => ({ keep: true, value: y }), + * (x, y) => ({ keep: true, value: x + y }), + * ); + * ``` + * @example + * ```ts + * // Intersects two collections in a left-biased manner. + * coll.merge( + * other, + * x => ({ keep: false }), + * y => ({ keep: false }), + * (x, _) => ({ keep: true, value: x }), + * ); + * ``` + */ + merge(other, whenInSelf, whenInOther, whenInBoth) { + const coll = new this.constructor[Symbol.species](); + const keys = /* @__PURE__ */ new Set([...this.keys(), ...other.keys()]); + for (const key of keys) { + const hasInSelf = this.has(key); + const hasInOther = other.has(key); + if (hasInSelf && hasInOther) { + const result = whenInBoth(this.get(key), other.get(key), key); + if (result.keep) + coll.set(key, result.value); + } else if (hasInSelf) { + const result = whenInSelf(this.get(key), key); + if (result.keep) + coll.set(key, result.value); + } else if (hasInOther) { + const result = whenInOther(other.get(key), key); + if (result.keep) + coll.set(key, result.value); + } + } + return coll; + } + /** + * The sorted method sorts the items of a collection and returns it. + * The sort is not necessarily stable in Node 10 or older. + * The default sort order is according to string Unicode code points. + * + * @param compareFunction - Specifies a function that defines the sort order. + * If omitted, the collection is sorted according to each character's Unicode code point value, + * according to the string conversion of each element. + * @example + * ```ts + * collection.sorted((userA, userB) => userA.createdTimestamp - userB.createdTimestamp); + * ``` + */ + sorted(compareFunction = _Collection.defaultSort) { + return new this.constructor[Symbol.species](this).sort((av, bv, ak, bk) => compareFunction(av, bv, ak, bk)); + } + toJSON() { + return [...this.values()]; + } + static defaultSort(firstValue, secondValue) { + return Number(firstValue > secondValue) || Number(firstValue === secondValue) - 1; + } + /** + * Creates a Collection from a list of entries. + * + * @param entries - The list of entries + * @param combine - Function to combine an existing entry with a new one + * @example + * ```ts + * Collection.combineEntries([["a", 1], ["b", 2], ["a", 2]], (x, y) => x + y); + * // returns Collection { "a" => 3, "b" => 2 } + * ``` + */ + static combineEntries(entries, combine) { + const coll = new _Collection(); + for (const [key, value] of entries) { + if (coll.has(key)) { + coll.set(key, combine(coll.get(key), value, key)); + } else { + coll.set(key, value); + } + } + return coll; + } +}; + +// src/index.ts +var version = "1.5.3"; +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + Collection, + version +}); +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/@discordjs/collection/dist/index.js.map b/node_modules/@discordjs/collection/dist/index.js.map new file mode 100644 index 0000000..247240c --- /dev/null +++ b/node_modules/@discordjs/collection/dist/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/index.ts","../src/collection.ts"],"sourcesContent":["export * from './collection.js';\n\n/**\n * The {@link https://github.com/discordjs/discord.js/blob/main/packages/collection/#readme | @discordjs/collection} version\n * that you are currently using.\n */\n// This needs to explicitly be `string` so it is not typed as a \"const string\" that gets injected by esbuild\nexport const version = '1.5.3' as string;\n","/* eslint-disable no-param-reassign */\n/**\n * @internal\n */\nexport interface CollectionConstructor {\n\tnew (): Collection;\n\tnew (entries?: readonly (readonly [K, V])[] | null): Collection;\n\tnew (iterable: Iterable): Collection;\n\treadonly prototype: Collection;\n\treadonly [Symbol.species]: CollectionConstructor;\n}\n\n/**\n * Represents an immutable version of a collection\n */\nexport type ReadonlyCollection = Omit<\n\tCollection,\n\t'delete' | 'ensure' | 'forEach' | 'get' | 'reverse' | 'set' | 'sort' | 'sweep'\n> &\n\tReadonlyMap;\n\n/**\n * Separate interface for the constructor so that emitted js does not have a constructor that overwrites itself\n *\n * @internal\n */\nexport interface Collection extends Map {\n\tconstructor: CollectionConstructor;\n}\n\n/**\n * A Map with additional utility methods. This is used throughout discord.js rather than Arrays for anything that has\n * an ID, for significantly improved performance and ease-of-use.\n *\n * @typeParam K - The key type this collection holds\n * @typeParam V - The value type this collection holds\n */\nexport class Collection extends Map {\n\t/**\n\t * Obtains the value of the given key if it exists, otherwise sets and returns the value provided by the default value generator.\n\t *\n\t * @param key - The key to get if it exists, or set otherwise\n\t * @param defaultValueGenerator - A function that generates the default value\n\t * @example\n\t * ```ts\n\t * collection.ensure(guildId, () => defaultGuildConfig);\n\t * ```\n\t */\n\tpublic ensure(key: K, defaultValueGenerator: (key: K, collection: this) => V): V {\n\t\tif (this.has(key)) return this.get(key)!;\n\t\tif (typeof defaultValueGenerator !== 'function') throw new TypeError(`${defaultValueGenerator} is not a function`);\n\t\tconst defaultValue = defaultValueGenerator(key, this);\n\t\tthis.set(key, defaultValue);\n\t\treturn defaultValue;\n\t}\n\n\t/**\n\t * Checks if all of the elements exist in the collection.\n\t *\n\t * @param keys - The keys of the elements to check for\n\t * @returns `true` if all of the elements exist, `false` if at least one does not exist.\n\t */\n\tpublic hasAll(...keys: K[]) {\n\t\treturn keys.every((key) => super.has(key));\n\t}\n\n\t/**\n\t * Checks if any of the elements exist in the collection.\n\t *\n\t * @param keys - The keys of the elements to check for\n\t * @returns `true` if any of the elements exist, `false` if none exist.\n\t */\n\tpublic hasAny(...keys: K[]) {\n\t\treturn keys.some((key) => super.has(key));\n\t}\n\n\t/**\n\t * Obtains the first value(s) in this collection.\n\t *\n\t * @param amount - Amount of values to obtain from the beginning\n\t * @returns A single value if no amount is provided or an array of values, starting from the end if amount is negative\n\t */\n\tpublic first(): V | undefined;\n\tpublic first(amount: number): V[];\n\tpublic first(amount?: number): V | V[] | undefined {\n\t\tif (amount === undefined) return this.values().next().value;\n\t\tif (amount < 0) return this.last(amount * -1);\n\t\tamount = Math.min(this.size, amount);\n\t\tconst iter = this.values();\n\t\treturn Array.from({ length: amount }, (): V => iter.next().value);\n\t}\n\n\t/**\n\t * Obtains the first key(s) in this collection.\n\t *\n\t * @param amount - Amount of keys to obtain from the beginning\n\t * @returns A single key if no amount is provided or an array of keys, starting from the end if\n\t * amount is negative\n\t */\n\tpublic firstKey(): K | undefined;\n\tpublic firstKey(amount: number): K[];\n\tpublic firstKey(amount?: number): K | K[] | undefined {\n\t\tif (amount === undefined) return this.keys().next().value;\n\t\tif (amount < 0) return this.lastKey(amount * -1);\n\t\tamount = Math.min(this.size, amount);\n\t\tconst iter = this.keys();\n\t\treturn Array.from({ length: amount }, (): K => iter.next().value);\n\t}\n\n\t/**\n\t * Obtains the last value(s) in this collection.\n\t *\n\t * @param amount - Amount of values to obtain from the end\n\t * @returns A single value if no amount is provided or an array of values, starting from the start if\n\t * amount is negative\n\t */\n\tpublic last(): V | undefined;\n\tpublic last(amount: number): V[];\n\tpublic last(amount?: number): V | V[] | undefined {\n\t\tconst arr = [...this.values()];\n\t\tif (amount === undefined) return arr[arr.length - 1];\n\t\tif (amount < 0) return this.first(amount * -1);\n\t\tif (!amount) return [];\n\t\treturn arr.slice(-amount);\n\t}\n\n\t/**\n\t * Obtains the last key(s) in this collection.\n\t *\n\t * @param amount - Amount of keys to obtain from the end\n\t * @returns A single key if no amount is provided or an array of keys, starting from the start if\n\t * amount is negative\n\t */\n\tpublic lastKey(): K | undefined;\n\tpublic lastKey(amount: number): K[];\n\tpublic lastKey(amount?: number): K | K[] | undefined {\n\t\tconst arr = [...this.keys()];\n\t\tif (amount === undefined) return arr[arr.length - 1];\n\t\tif (amount < 0) return this.firstKey(amount * -1);\n\t\tif (!amount) return [];\n\t\treturn arr.slice(-amount);\n\t}\n\n\t/**\n\t * Identical to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/at | Array.at()}.\n\t * Returns the item at a given index, allowing for positive and negative integers.\n\t * Negative integers count back from the last item in the collection.\n\t *\n\t * @param index - The index of the element to obtain\n\t */\n\tpublic at(index: number) {\n\t\tindex = Math.floor(index);\n\t\tconst arr = [...this.values()];\n\t\treturn arr.at(index);\n\t}\n\n\t/**\n\t * Identical to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/at | Array.at()}.\n\t * Returns the key at a given index, allowing for positive and negative integers.\n\t * Negative integers count back from the last item in the collection.\n\t *\n\t * @param index - The index of the key to obtain\n\t */\n\tpublic keyAt(index: number) {\n\t\tindex = Math.floor(index);\n\t\tconst arr = [...this.keys()];\n\t\treturn arr.at(index);\n\t}\n\n\t/**\n\t * Obtains unique random value(s) from this collection.\n\t *\n\t * @param amount - Amount of values to obtain randomly\n\t * @returns A single value if no amount is provided or an array of values\n\t */\n\tpublic random(): V | undefined;\n\tpublic random(amount: number): V[];\n\tpublic random(amount?: number): V | V[] | undefined {\n\t\tconst arr = [...this.values()];\n\t\tif (amount === undefined) return arr[Math.floor(Math.random() * arr.length)];\n\t\tif (!arr.length || !amount) return [];\n\t\treturn Array.from(\n\t\t\t{ length: Math.min(amount, arr.length) },\n\t\t\t(): V => arr.splice(Math.floor(Math.random() * arr.length), 1)[0]!,\n\t\t);\n\t}\n\n\t/**\n\t * Obtains unique random key(s) from this collection.\n\t *\n\t * @param amount - Amount of keys to obtain randomly\n\t * @returns A single key if no amount is provided or an array\n\t */\n\tpublic randomKey(): K | undefined;\n\tpublic randomKey(amount: number): K[];\n\tpublic randomKey(amount?: number): K | K[] | undefined {\n\t\tconst arr = [...this.keys()];\n\t\tif (amount === undefined) return arr[Math.floor(Math.random() * arr.length)];\n\t\tif (!arr.length || !amount) return [];\n\t\treturn Array.from(\n\t\t\t{ length: Math.min(amount, arr.length) },\n\t\t\t(): K => arr.splice(Math.floor(Math.random() * arr.length), 1)[0]!,\n\t\t);\n\t}\n\n\t/**\n\t * Identical to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reverse | Array.reverse()}\n\t * but returns a Collection instead of an Array.\n\t */\n\tpublic reverse() {\n\t\tconst entries = [...this.entries()].reverse();\n\t\tthis.clear();\n\t\tfor (const [key, value] of entries) this.set(key, value);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Searches for a single item where the given function returns a truthy value. This behaves like\n\t * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find | Array.find()}.\n\t * All collections used in Discord.js are mapped using their `id` property, and if you want to find by id you\n\t * should use the `get` method. See\n\t * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/get | MDN} for details.\n\t *\n\t * @param fn - The function to test with (should return boolean)\n\t * @param thisArg - Value to use as `this` when executing function\n\t * @example\n\t * ```ts\n\t * collection.find(user => user.username === 'Bob');\n\t * ```\n\t */\n\tpublic find(fn: (value: V, key: K, collection: this) => value is V2): V2 | undefined;\n\tpublic find(fn: (value: V, key: K, collection: this) => unknown): V | undefined;\n\tpublic find(\n\t\tfn: (this: This, value: V, key: K, collection: this) => value is V2,\n\t\tthisArg: This,\n\t): V2 | undefined;\n\tpublic find(fn: (this: This, value: V, key: K, collection: this) => unknown, thisArg: This): V | undefined;\n\tpublic find(fn: (value: V, key: K, collection: this) => unknown, thisArg?: unknown): V | undefined {\n\t\tif (typeof fn !== 'function') throw new TypeError(`${fn} is not a function`);\n\t\tif (thisArg !== undefined) fn = fn.bind(thisArg);\n\t\tfor (const [key, val] of this) {\n\t\t\tif (fn(val, key, this)) return val;\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\t/**\n\t * Searches for the key of a single item where the given function returns a truthy value. This behaves like\n\t * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/findIndex | Array.findIndex()},\n\t * but returns the key rather than the positional index.\n\t *\n\t * @param fn - The function to test with (should return boolean)\n\t * @param thisArg - Value to use as `this` when executing function\n\t * @example\n\t * ```ts\n\t * collection.findKey(user => user.username === 'Bob');\n\t * ```\n\t */\n\tpublic findKey(fn: (value: V, key: K, collection: this) => key is K2): K2 | undefined;\n\tpublic findKey(fn: (value: V, key: K, collection: this) => unknown): K | undefined;\n\tpublic findKey(\n\t\tfn: (this: This, value: V, key: K, collection: this) => key is K2,\n\t\tthisArg: This,\n\t): K2 | undefined;\n\tpublic findKey(fn: (this: This, value: V, key: K, collection: this) => unknown, thisArg: This): K | undefined;\n\tpublic findKey(fn: (value: V, key: K, collection: this) => unknown, thisArg?: unknown): K | undefined {\n\t\tif (typeof fn !== 'function') throw new TypeError(`${fn} is not a function`);\n\t\tif (thisArg !== undefined) fn = fn.bind(thisArg);\n\t\tfor (const [key, val] of this) {\n\t\t\tif (fn(val, key, this)) return key;\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\t/**\n\t * Removes items that satisfy the provided filter function.\n\t *\n\t * @param fn - Function used to test (should return a boolean)\n\t * @param thisArg - Value to use as `this` when executing function\n\t * @returns The number of removed entries\n\t */\n\tpublic sweep(fn: (value: V, key: K, collection: this) => unknown): number;\n\tpublic sweep(fn: (this: T, value: V, key: K, collection: this) => unknown, thisArg: T): number;\n\tpublic sweep(fn: (value: V, key: K, collection: this) => unknown, thisArg?: unknown): number {\n\t\tif (typeof fn !== 'function') throw new TypeError(`${fn} is not a function`);\n\t\tif (thisArg !== undefined) fn = fn.bind(thisArg);\n\t\tconst previousSize = this.size;\n\t\tfor (const [key, val] of this) {\n\t\t\tif (fn(val, key, this)) this.delete(key);\n\t\t}\n\n\t\treturn previousSize - this.size;\n\t}\n\n\t/**\n\t * Identical to\n\t * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter | Array.filter()},\n\t * but returns a Collection instead of an Array.\n\t *\n\t * @param fn - The function to test with (should return boolean)\n\t * @param thisArg - Value to use as `this` when executing function\n\t * @example\n\t * ```ts\n\t * collection.filter(user => user.username === 'Bob');\n\t * ```\n\t */\n\tpublic filter(fn: (value: V, key: K, collection: this) => key is K2): Collection;\n\tpublic filter(fn: (value: V, key: K, collection: this) => value is V2): Collection;\n\tpublic filter(fn: (value: V, key: K, collection: this) => unknown): Collection;\n\tpublic filter(\n\t\tfn: (this: This, value: V, key: K, collection: this) => key is K2,\n\t\tthisArg: This,\n\t): Collection;\n\tpublic filter(\n\t\tfn: (this: This, value: V, key: K, collection: this) => value is V2,\n\t\tthisArg: This,\n\t): Collection;\n\tpublic filter(fn: (this: This, value: V, key: K, collection: this) => unknown, thisArg: This): Collection;\n\tpublic filter(fn: (value: V, key: K, collection: this) => unknown, thisArg?: unknown): Collection {\n\t\tif (typeof fn !== 'function') throw new TypeError(`${fn} is not a function`);\n\t\tif (thisArg !== undefined) fn = fn.bind(thisArg);\n\t\tconst results = new this.constructor[Symbol.species]();\n\t\tfor (const [key, val] of this) {\n\t\t\tif (fn(val, key, this)) results.set(key, val);\n\t\t}\n\n\t\treturn results;\n\t}\n\n\t/**\n\t * Partitions the collection into two collections where the first collection\n\t * contains the items that passed and the second contains the items that failed.\n\t *\n\t * @param fn - Function used to test (should return a boolean)\n\t * @param thisArg - Value to use as `this` when executing function\n\t * @example\n\t * ```ts\n\t * const [big, small] = collection.partition(guild => guild.memberCount > 250);\n\t * ```\n\t */\n\tpublic partition(\n\t\tfn: (value: V, key: K, collection: this) => key is K2,\n\t): [Collection, Collection, V>];\n\tpublic partition(\n\t\tfn: (value: V, key: K, collection: this) => value is V2,\n\t): [Collection, Collection>];\n\tpublic partition(fn: (value: V, key: K, collection: this) => unknown): [Collection, Collection];\n\tpublic partition(\n\t\tfn: (this: This, value: V, key: K, collection: this) => key is K2,\n\t\tthisArg: This,\n\t): [Collection, Collection, V>];\n\tpublic partition(\n\t\tfn: (this: This, value: V, key: K, collection: this) => value is V2,\n\t\tthisArg: This,\n\t): [Collection, Collection>];\n\tpublic partition(\n\t\tfn: (this: This, value: V, key: K, collection: this) => unknown,\n\t\tthisArg: This,\n\t): [Collection, Collection];\n\tpublic partition(\n\t\tfn: (value: V, key: K, collection: this) => unknown,\n\t\tthisArg?: unknown,\n\t): [Collection, Collection] {\n\t\tif (typeof fn !== 'function') throw new TypeError(`${fn} is not a function`);\n\t\tif (thisArg !== undefined) fn = fn.bind(thisArg);\n\t\tconst results: [Collection, Collection] = [\n\t\t\tnew this.constructor[Symbol.species](),\n\t\t\tnew this.constructor[Symbol.species](),\n\t\t];\n\t\tfor (const [key, val] of this) {\n\t\t\tif (fn(val, key, this)) {\n\t\t\t\tresults[0].set(key, val);\n\t\t\t} else {\n\t\t\t\tresults[1].set(key, val);\n\t\t\t}\n\t\t}\n\n\t\treturn results;\n\t}\n\n\t/**\n\t * Maps each item into a Collection, then joins the results into a single Collection. Identical in behavior to\n\t * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/flatMap | Array.flatMap()}.\n\t *\n\t * @param fn - Function that produces a new Collection\n\t * @param thisArg - Value to use as `this` when executing function\n\t * @example\n\t * ```ts\n\t * collection.flatMap(guild => guild.members.cache);\n\t * ```\n\t */\n\tpublic flatMap(fn: (value: V, key: K, collection: this) => Collection): Collection;\n\tpublic flatMap(\n\t\tfn: (this: This, value: V, key: K, collection: this) => Collection,\n\t\tthisArg: This,\n\t): Collection;\n\tpublic flatMap(fn: (value: V, key: K, collection: this) => Collection, thisArg?: unknown): Collection {\n\t\t// eslint-disable-next-line unicorn/no-array-method-this-argument\n\t\tconst collections = this.map(fn, thisArg);\n\t\treturn new this.constructor[Symbol.species]().concat(...collections);\n\t}\n\n\t/**\n\t * Maps each item to another value into an array. Identical in behavior to\n\t * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map | Array.map()}.\n\t *\n\t * @param fn - Function that produces an element of the new array, taking three arguments\n\t * @param thisArg - Value to use as `this` when executing function\n\t * @example\n\t * ```ts\n\t * collection.map(user => user.tag);\n\t * ```\n\t */\n\tpublic map(fn: (value: V, key: K, collection: this) => T): T[];\n\tpublic map(fn: (this: This, value: V, key: K, collection: this) => T, thisArg: This): T[];\n\tpublic map(fn: (value: V, key: K, collection: this) => T, thisArg?: unknown): T[] {\n\t\tif (typeof fn !== 'function') throw new TypeError(`${fn} is not a function`);\n\t\tif (thisArg !== undefined) fn = fn.bind(thisArg);\n\t\tconst iter = this.entries();\n\t\treturn Array.from({ length: this.size }, (): T => {\n\t\t\tconst [key, value] = iter.next().value;\n\t\t\treturn fn(value, key, this);\n\t\t});\n\t}\n\n\t/**\n\t * Maps each item to another value into a collection. Identical in behavior to\n\t * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map | Array.map()}.\n\t *\n\t * @param fn - Function that produces an element of the new collection, taking three arguments\n\t * @param thisArg - Value to use as `this` when executing function\n\t * @example\n\t * ```ts\n\t * collection.mapValues(user => user.tag);\n\t * ```\n\t */\n\tpublic mapValues(fn: (value: V, key: K, collection: this) => T): Collection;\n\tpublic mapValues(fn: (this: This, value: V, key: K, collection: this) => T, thisArg: This): Collection;\n\tpublic mapValues(fn: (value: V, key: K, collection: this) => T, thisArg?: unknown): Collection {\n\t\tif (typeof fn !== 'function') throw new TypeError(`${fn} is not a function`);\n\t\tif (thisArg !== undefined) fn = fn.bind(thisArg);\n\t\tconst coll = new this.constructor[Symbol.species]();\n\t\tfor (const [key, val] of this) coll.set(key, fn(val, key, this));\n\t\treturn coll;\n\t}\n\n\t/**\n\t * Checks if there exists an item that passes a test. Identical in behavior to\n\t * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some | Array.some()}.\n\t *\n\t * @param fn - Function used to test (should return a boolean)\n\t * @param thisArg - Value to use as `this` when executing function\n\t * @example\n\t * ```ts\n\t * collection.some(user => user.discriminator === '0000');\n\t * ```\n\t */\n\tpublic some(fn: (value: V, key: K, collection: this) => unknown): boolean;\n\tpublic some(fn: (this: T, value: V, key: K, collection: this) => unknown, thisArg: T): boolean;\n\tpublic some(fn: (value: V, key: K, collection: this) => unknown, thisArg?: unknown): boolean {\n\t\tif (typeof fn !== 'function') throw new TypeError(`${fn} is not a function`);\n\t\tif (thisArg !== undefined) fn = fn.bind(thisArg);\n\t\tfor (const [key, val] of this) {\n\t\t\tif (fn(val, key, this)) return true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t * Checks if all items passes a test. Identical in behavior to\n\t * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/every | Array.every()}.\n\t *\n\t * @param fn - Function used to test (should return a boolean)\n\t * @param thisArg - Value to use as `this` when executing function\n\t * @example\n\t * ```ts\n\t * collection.every(user => !user.bot);\n\t * ```\n\t */\n\tpublic every(fn: (value: V, key: K, collection: this) => key is K2): this is Collection;\n\tpublic every(fn: (value: V, key: K, collection: this) => value is V2): this is Collection;\n\tpublic every(fn: (value: V, key: K, collection: this) => unknown): boolean;\n\tpublic every(\n\t\tfn: (this: This, value: V, key: K, collection: this) => key is K2,\n\t\tthisArg: This,\n\t): this is Collection;\n\tpublic every(\n\t\tfn: (this: This, value: V, key: K, collection: this) => value is V2,\n\t\tthisArg: This,\n\t): this is Collection;\n\tpublic every(fn: (this: This, value: V, key: K, collection: this) => unknown, thisArg: This): boolean;\n\tpublic every(fn: (value: V, key: K, collection: this) => unknown, thisArg?: unknown): boolean {\n\t\tif (typeof fn !== 'function') throw new TypeError(`${fn} is not a function`);\n\t\tif (thisArg !== undefined) fn = fn.bind(thisArg);\n\t\tfor (const [key, val] of this) {\n\t\t\tif (!fn(val, key, this)) return false;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\t/**\n\t * Applies a function to produce a single value. Identical in behavior to\n\t * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce | Array.reduce()}.\n\t *\n\t * @param fn - Function used to reduce, taking four arguments; `accumulator`, `currentValue`, `currentKey`,\n\t * and `collection`\n\t * @param initialValue - Starting value for the accumulator\n\t * @example\n\t * ```ts\n\t * collection.reduce((acc, guild) => acc + guild.memberCount, 0);\n\t * ```\n\t */\n\tpublic reduce(fn: (accumulator: T, value: V, key: K, collection: this) => T, initialValue?: T): T {\n\t\tif (typeof fn !== 'function') throw new TypeError(`${fn} is not a function`);\n\t\tlet accumulator!: T;\n\n\t\tconst iterator = this.entries();\n\t\tif (initialValue === undefined) {\n\t\t\tif (this.size === 0) throw new TypeError('Reduce of empty collection with no initial value');\n\t\t\taccumulator = iterator.next().value[1];\n\t\t} else {\n\t\t\taccumulator = initialValue;\n\t\t}\n\n\t\tfor (const [key, value] of iterator) {\n\t\t\taccumulator = fn(accumulator, value, key, this);\n\t\t}\n\n\t\treturn accumulator;\n\t}\n\n\t/**\n\t * Identical to\n\t * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/forEach | Map.forEach()},\n\t * but returns the collection instead of undefined.\n\t *\n\t * @param fn - Function to execute for each element\n\t * @param thisArg - Value to use as `this` when executing function\n\t * @example\n\t * ```ts\n\t * collection\n\t * .each(user => console.log(user.username))\n\t * .filter(user => user.bot)\n\t * .each(user => console.log(user.username));\n\t * ```\n\t */\n\tpublic each(fn: (value: V, key: K, collection: this) => void): this;\n\tpublic each(fn: (this: T, value: V, key: K, collection: this) => void, thisArg: T): this;\n\tpublic each(fn: (value: V, key: K, collection: this) => void, thisArg?: unknown): this {\n\t\tif (typeof fn !== 'function') throw new TypeError(`${fn} is not a function`);\n\t\tif (thisArg !== undefined) fn = fn.bind(thisArg);\n\n\t\tfor (const [key, value] of this) {\n\t\t\tfn(value, key, this);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Runs a function on the collection and returns the collection.\n\t *\n\t * @param fn - Function to execute\n\t * @param thisArg - Value to use as `this` when executing function\n\t * @example\n\t * ```ts\n\t * collection\n\t * .tap(coll => console.log(coll.size))\n\t * .filter(user => user.bot)\n\t * .tap(coll => console.log(coll.size))\n\t * ```\n\t */\n\tpublic tap(fn: (collection: this) => void): this;\n\tpublic tap(fn: (this: T, collection: this) => void, thisArg: T): this;\n\tpublic tap(fn: (collection: this) => void, thisArg?: unknown): this {\n\t\tif (typeof fn !== 'function') throw new TypeError(`${fn} is not a function`);\n\t\tif (thisArg !== undefined) fn = fn.bind(thisArg);\n\t\tfn(this);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Creates an identical shallow copy of this collection.\n\t *\n\t * @example\n\t * ```ts\n\t * const newColl = someColl.clone();\n\t * ```\n\t */\n\tpublic clone(): Collection {\n\t\treturn new this.constructor[Symbol.species](this);\n\t}\n\n\t/**\n\t * Combines this collection with others into a new collection. None of the source collections are modified.\n\t *\n\t * @param collections - Collections to merge\n\t * @example\n\t * ```ts\n\t * const newColl = someColl.concat(someOtherColl, anotherColl, ohBoyAColl);\n\t * ```\n\t */\n\tpublic concat(...collections: ReadonlyCollection[]) {\n\t\tconst newColl = this.clone();\n\t\tfor (const coll of collections) {\n\t\t\tfor (const [key, val] of coll) newColl.set(key, val);\n\t\t}\n\n\t\treturn newColl;\n\t}\n\n\t/**\n\t * Checks if this collection shares identical items with another.\n\t * This is different to checking for equality using equal-signs, because\n\t * the collections may be different objects, but contain the same data.\n\t *\n\t * @param collection - Collection to compare with\n\t * @returns Whether the collections have identical contents\n\t */\n\tpublic equals(collection: ReadonlyCollection) {\n\t\tif (!collection) return false; // runtime check\n\t\tif (this === collection) return true;\n\t\tif (this.size !== collection.size) return false;\n\t\tfor (const [key, value] of this) {\n\t\t\tif (!collection.has(key) || value !== collection.get(key)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n\n\t/**\n\t * The sort method sorts the items of a collection in place and returns it.\n\t * The sort is not necessarily stable in Node 10 or older.\n\t * The default sort order is according to string Unicode code points.\n\t *\n\t * @param compareFunction - Specifies a function that defines the sort order.\n\t * If omitted, the collection is sorted according to each character's Unicode code point value, according to the string conversion of each element.\n\t * @example\n\t * ```ts\n\t * collection.sort((userA, userB) => userA.createdTimestamp - userB.createdTimestamp);\n\t * ```\n\t */\n\tpublic sort(compareFunction: Comparator = Collection.defaultSort) {\n\t\tconst entries = [...this.entries()];\n\t\tentries.sort((a, b): number => compareFunction(a[1], b[1], a[0], b[0]));\n\n\t\t// Perform clean-up\n\t\tsuper.clear();\n\n\t\t// Set the new entries\n\t\tfor (const [key, value] of entries) {\n\t\t\tsuper.set(key, value);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * The intersect method returns a new structure containing items where the keys and values are present in both original structures.\n\t *\n\t * @param other - The other Collection to filter against\n\t */\n\tpublic intersect(other: ReadonlyCollection): Collection {\n\t\tconst coll = new this.constructor[Symbol.species]();\n\t\tfor (const [key, value] of other) {\n\t\t\tif (this.has(key) && Object.is(value, this.get(key))) {\n\t\t\t\tcoll.set(key, value);\n\t\t\t}\n\t\t}\n\n\t\treturn coll;\n\t}\n\n\t/**\n\t * The subtract method returns a new structure containing items where the keys and values of the original structure are not present in the other.\n\t *\n\t * @param other - The other Collection to filter against\n\t */\n\tpublic subtract(other: ReadonlyCollection): Collection {\n\t\tconst coll = new this.constructor[Symbol.species]();\n\t\tfor (const [key, value] of this) {\n\t\t\tif (!other.has(key) || !Object.is(value, other.get(key))) {\n\t\t\t\tcoll.set(key, value);\n\t\t\t}\n\t\t}\n\n\t\treturn coll;\n\t}\n\n\t/**\n\t * The difference method returns a new structure containing items where the key is present in one of the original structures but not the other.\n\t *\n\t * @param other - The other Collection to filter against\n\t */\n\tpublic difference(other: ReadonlyCollection): Collection {\n\t\tconst coll = new this.constructor[Symbol.species]();\n\t\tfor (const [key, value] of other) {\n\t\t\tif (!this.has(key)) coll.set(key, value);\n\t\t}\n\n\t\tfor (const [key, value] of this) {\n\t\t\tif (!other.has(key)) coll.set(key, value);\n\t\t}\n\n\t\treturn coll;\n\t}\n\n\t/**\n\t * Merges two Collections together into a new Collection.\n\t *\n\t * @param other - The other Collection to merge with\n\t * @param whenInSelf - Function getting the result if the entry only exists in this Collection\n\t * @param whenInOther - Function getting the result if the entry only exists in the other Collection\n\t * @param whenInBoth - Function getting the result if the entry exists in both Collections\n\t * @example\n\t * ```ts\n\t * // Sums up the entries in two collections.\n\t * coll.merge(\n\t * other,\n\t * x => ({ keep: true, value: x }),\n\t * y => ({ keep: true, value: y }),\n\t * (x, y) => ({ keep: true, value: x + y }),\n\t * );\n\t * ```\n\t * @example\n\t * ```ts\n\t * // Intersects two collections in a left-biased manner.\n\t * coll.merge(\n\t * other,\n\t * x => ({ keep: false }),\n\t * y => ({ keep: false }),\n\t * (x, _) => ({ keep: true, value: x }),\n\t * );\n\t * ```\n\t */\n\tpublic merge(\n\t\tother: ReadonlyCollection,\n\t\twhenInSelf: (value: V, key: K) => Keep,\n\t\twhenInOther: (valueOther: T, key: K) => Keep,\n\t\twhenInBoth: (value: V, valueOther: T, key: K) => Keep,\n\t): Collection {\n\t\tconst coll = new this.constructor[Symbol.species]();\n\t\tconst keys = new Set([...this.keys(), ...other.keys()]);\n\n\t\tfor (const key of keys) {\n\t\t\tconst hasInSelf = this.has(key);\n\t\t\tconst hasInOther = other.has(key);\n\n\t\t\tif (hasInSelf && hasInOther) {\n\t\t\t\tconst result = whenInBoth(this.get(key)!, other.get(key)!, key);\n\t\t\t\tif (result.keep) coll.set(key, result.value);\n\t\t\t} else if (hasInSelf) {\n\t\t\t\tconst result = whenInSelf(this.get(key)!, key);\n\t\t\t\tif (result.keep) coll.set(key, result.value);\n\t\t\t} else if (hasInOther) {\n\t\t\t\tconst result = whenInOther(other.get(key)!, key);\n\t\t\t\tif (result.keep) coll.set(key, result.value);\n\t\t\t}\n\t\t}\n\n\t\treturn coll;\n\t}\n\n\t/**\n\t * The sorted method sorts the items of a collection and returns it.\n\t * The sort is not necessarily stable in Node 10 or older.\n\t * The default sort order is according to string Unicode code points.\n\t *\n\t * @param compareFunction - Specifies a function that defines the sort order.\n\t * If omitted, the collection is sorted according to each character's Unicode code point value,\n\t * according to the string conversion of each element.\n\t * @example\n\t * ```ts\n\t * collection.sorted((userA, userB) => userA.createdTimestamp - userB.createdTimestamp);\n\t * ```\n\t */\n\tpublic sorted(compareFunction: Comparator = Collection.defaultSort) {\n\t\treturn new this.constructor[Symbol.species](this).sort((av, bv, ak, bk) => compareFunction(av, bv, ak, bk));\n\t}\n\n\tpublic toJSON() {\n\t\t// toJSON is called recursively by JSON.stringify.\n\t\treturn [...this.values()];\n\t}\n\n\tprivate static defaultSort(firstValue: V, secondValue: V): number {\n\t\treturn Number(firstValue > secondValue) || Number(firstValue === secondValue) - 1;\n\t}\n\n\t/**\n\t * Creates a Collection from a list of entries.\n\t *\n\t * @param entries - The list of entries\n\t * @param combine - Function to combine an existing entry with a new one\n\t * @example\n\t * ```ts\n\t * Collection.combineEntries([[\"a\", 1], [\"b\", 2], [\"a\", 2]], (x, y) => x + y);\n\t * // returns Collection { \"a\" => 3, \"b\" => 2 }\n\t * ```\n\t */\n\tpublic static combineEntries(\n\t\tentries: Iterable<[K, V]>,\n\t\tcombine: (firstValue: V, secondValue: V, key: K) => V,\n\t): Collection {\n\t\tconst coll = new Collection();\n\t\tfor (const [key, value] of entries) {\n\t\t\tif (coll.has(key)) {\n\t\t\t\tcoll.set(key, combine(coll.get(key)!, value, key));\n\t\t\t} else {\n\t\t\t\tcoll.set(key, value);\n\t\t\t}\n\t\t}\n\n\t\treturn coll;\n\t}\n}\n\n/**\n * @internal\n */\nexport type Keep = { keep: false } | { keep: true; value: V };\n\n/**\n * @internal\n */\nexport type Comparator = (firstValue: V, secondValue: V, firstKey: K, secondKey: K) => number;\n"],"mappings":"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","names":[]} \ No newline at end of file diff --git a/node_modules/@discordjs/collection/dist/index.mjs b/node_modules/@discordjs/collection/dist/index.mjs new file mode 100644 index 0000000..c31c9ee --- /dev/null +++ b/node_modules/@discordjs/collection/dist/index.mjs @@ -0,0 +1,517 @@ +var __defProp = Object.defineProperty; +var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); + +// src/collection.ts +var Collection = class _Collection extends Map { + static { + __name(this, "Collection"); + } + /** + * Obtains the value of the given key if it exists, otherwise sets and returns the value provided by the default value generator. + * + * @param key - The key to get if it exists, or set otherwise + * @param defaultValueGenerator - A function that generates the default value + * @example + * ```ts + * collection.ensure(guildId, () => defaultGuildConfig); + * ``` + */ + ensure(key, defaultValueGenerator) { + if (this.has(key)) + return this.get(key); + if (typeof defaultValueGenerator !== "function") + throw new TypeError(`${defaultValueGenerator} is not a function`); + const defaultValue = defaultValueGenerator(key, this); + this.set(key, defaultValue); + return defaultValue; + } + /** + * Checks if all of the elements exist in the collection. + * + * @param keys - The keys of the elements to check for + * @returns `true` if all of the elements exist, `false` if at least one does not exist. + */ + hasAll(...keys) { + return keys.every((key) => super.has(key)); + } + /** + * Checks if any of the elements exist in the collection. + * + * @param keys - The keys of the elements to check for + * @returns `true` if any of the elements exist, `false` if none exist. + */ + hasAny(...keys) { + return keys.some((key) => super.has(key)); + } + first(amount) { + if (amount === void 0) + return this.values().next().value; + if (amount < 0) + return this.last(amount * -1); + amount = Math.min(this.size, amount); + const iter = this.values(); + return Array.from({ length: amount }, () => iter.next().value); + } + firstKey(amount) { + if (amount === void 0) + return this.keys().next().value; + if (amount < 0) + return this.lastKey(amount * -1); + amount = Math.min(this.size, amount); + const iter = this.keys(); + return Array.from({ length: amount }, () => iter.next().value); + } + last(amount) { + const arr = [...this.values()]; + if (amount === void 0) + return arr[arr.length - 1]; + if (amount < 0) + return this.first(amount * -1); + if (!amount) + return []; + return arr.slice(-amount); + } + lastKey(amount) { + const arr = [...this.keys()]; + if (amount === void 0) + return arr[arr.length - 1]; + if (amount < 0) + return this.firstKey(amount * -1); + if (!amount) + return []; + return arr.slice(-amount); + } + /** + * Identical to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/at | Array.at()}. + * Returns the item at a given index, allowing for positive and negative integers. + * Negative integers count back from the last item in the collection. + * + * @param index - The index of the element to obtain + */ + at(index) { + index = Math.floor(index); + const arr = [...this.values()]; + return arr.at(index); + } + /** + * Identical to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/at | Array.at()}. + * Returns the key at a given index, allowing for positive and negative integers. + * Negative integers count back from the last item in the collection. + * + * @param index - The index of the key to obtain + */ + keyAt(index) { + index = Math.floor(index); + const arr = [...this.keys()]; + return arr.at(index); + } + random(amount) { + const arr = [...this.values()]; + if (amount === void 0) + return arr[Math.floor(Math.random() * arr.length)]; + if (!arr.length || !amount) + return []; + return Array.from( + { length: Math.min(amount, arr.length) }, + () => arr.splice(Math.floor(Math.random() * arr.length), 1)[0] + ); + } + randomKey(amount) { + const arr = [...this.keys()]; + if (amount === void 0) + return arr[Math.floor(Math.random() * arr.length)]; + if (!arr.length || !amount) + return []; + return Array.from( + { length: Math.min(amount, arr.length) }, + () => arr.splice(Math.floor(Math.random() * arr.length), 1)[0] + ); + } + /** + * Identical to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reverse | Array.reverse()} + * but returns a Collection instead of an Array. + */ + reverse() { + const entries = [...this.entries()].reverse(); + this.clear(); + for (const [key, value] of entries) + this.set(key, value); + return this; + } + find(fn, thisArg) { + if (typeof fn !== "function") + throw new TypeError(`${fn} is not a function`); + if (thisArg !== void 0) + fn = fn.bind(thisArg); + for (const [key, val] of this) { + if (fn(val, key, this)) + return val; + } + return void 0; + } + findKey(fn, thisArg) { + if (typeof fn !== "function") + throw new TypeError(`${fn} is not a function`); + if (thisArg !== void 0) + fn = fn.bind(thisArg); + for (const [key, val] of this) { + if (fn(val, key, this)) + return key; + } + return void 0; + } + sweep(fn, thisArg) { + if (typeof fn !== "function") + throw new TypeError(`${fn} is not a function`); + if (thisArg !== void 0) + fn = fn.bind(thisArg); + const previousSize = this.size; + for (const [key, val] of this) { + if (fn(val, key, this)) + this.delete(key); + } + return previousSize - this.size; + } + filter(fn, thisArg) { + if (typeof fn !== "function") + throw new TypeError(`${fn} is not a function`); + if (thisArg !== void 0) + fn = fn.bind(thisArg); + const results = new this.constructor[Symbol.species](); + for (const [key, val] of this) { + if (fn(val, key, this)) + results.set(key, val); + } + return results; + } + partition(fn, thisArg) { + if (typeof fn !== "function") + throw new TypeError(`${fn} is not a function`); + if (thisArg !== void 0) + fn = fn.bind(thisArg); + const results = [ + new this.constructor[Symbol.species](), + new this.constructor[Symbol.species]() + ]; + for (const [key, val] of this) { + if (fn(val, key, this)) { + results[0].set(key, val); + } else { + results[1].set(key, val); + } + } + return results; + } + flatMap(fn, thisArg) { + const collections = this.map(fn, thisArg); + return new this.constructor[Symbol.species]().concat(...collections); + } + map(fn, thisArg) { + if (typeof fn !== "function") + throw new TypeError(`${fn} is not a function`); + if (thisArg !== void 0) + fn = fn.bind(thisArg); + const iter = this.entries(); + return Array.from({ length: this.size }, () => { + const [key, value] = iter.next().value; + return fn(value, key, this); + }); + } + mapValues(fn, thisArg) { + if (typeof fn !== "function") + throw new TypeError(`${fn} is not a function`); + if (thisArg !== void 0) + fn = fn.bind(thisArg); + const coll = new this.constructor[Symbol.species](); + for (const [key, val] of this) + coll.set(key, fn(val, key, this)); + return coll; + } + some(fn, thisArg) { + if (typeof fn !== "function") + throw new TypeError(`${fn} is not a function`); + if (thisArg !== void 0) + fn = fn.bind(thisArg); + for (const [key, val] of this) { + if (fn(val, key, this)) + return true; + } + return false; + } + every(fn, thisArg) { + if (typeof fn !== "function") + throw new TypeError(`${fn} is not a function`); + if (thisArg !== void 0) + fn = fn.bind(thisArg); + for (const [key, val] of this) { + if (!fn(val, key, this)) + return false; + } + return true; + } + /** + * Applies a function to produce a single value. Identical in behavior to + * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce | Array.reduce()}. + * + * @param fn - Function used to reduce, taking four arguments; `accumulator`, `currentValue`, `currentKey`, + * and `collection` + * @param initialValue - Starting value for the accumulator + * @example + * ```ts + * collection.reduce((acc, guild) => acc + guild.memberCount, 0); + * ``` + */ + reduce(fn, initialValue) { + if (typeof fn !== "function") + throw new TypeError(`${fn} is not a function`); + let accumulator; + const iterator = this.entries(); + if (initialValue === void 0) { + if (this.size === 0) + throw new TypeError("Reduce of empty collection with no initial value"); + accumulator = iterator.next().value[1]; + } else { + accumulator = initialValue; + } + for (const [key, value] of iterator) { + accumulator = fn(accumulator, value, key, this); + } + return accumulator; + } + each(fn, thisArg) { + if (typeof fn !== "function") + throw new TypeError(`${fn} is not a function`); + if (thisArg !== void 0) + fn = fn.bind(thisArg); + for (const [key, value] of this) { + fn(value, key, this); + } + return this; + } + tap(fn, thisArg) { + if (typeof fn !== "function") + throw new TypeError(`${fn} is not a function`); + if (thisArg !== void 0) + fn = fn.bind(thisArg); + fn(this); + return this; + } + /** + * Creates an identical shallow copy of this collection. + * + * @example + * ```ts + * const newColl = someColl.clone(); + * ``` + */ + clone() { + return new this.constructor[Symbol.species](this); + } + /** + * Combines this collection with others into a new collection. None of the source collections are modified. + * + * @param collections - Collections to merge + * @example + * ```ts + * const newColl = someColl.concat(someOtherColl, anotherColl, ohBoyAColl); + * ``` + */ + concat(...collections) { + const newColl = this.clone(); + for (const coll of collections) { + for (const [key, val] of coll) + newColl.set(key, val); + } + return newColl; + } + /** + * Checks if this collection shares identical items with another. + * This is different to checking for equality using equal-signs, because + * the collections may be different objects, but contain the same data. + * + * @param collection - Collection to compare with + * @returns Whether the collections have identical contents + */ + equals(collection) { + if (!collection) + return false; + if (this === collection) + return true; + if (this.size !== collection.size) + return false; + for (const [key, value] of this) { + if (!collection.has(key) || value !== collection.get(key)) { + return false; + } + } + return true; + } + /** + * The sort method sorts the items of a collection in place and returns it. + * The sort is not necessarily stable in Node 10 or older. + * The default sort order is according to string Unicode code points. + * + * @param compareFunction - Specifies a function that defines the sort order. + * If omitted, the collection is sorted according to each character's Unicode code point value, according to the string conversion of each element. + * @example + * ```ts + * collection.sort((userA, userB) => userA.createdTimestamp - userB.createdTimestamp); + * ``` + */ + sort(compareFunction = _Collection.defaultSort) { + const entries = [...this.entries()]; + entries.sort((a, b) => compareFunction(a[1], b[1], a[0], b[0])); + super.clear(); + for (const [key, value] of entries) { + super.set(key, value); + } + return this; + } + /** + * The intersect method returns a new structure containing items where the keys and values are present in both original structures. + * + * @param other - The other Collection to filter against + */ + intersect(other) { + const coll = new this.constructor[Symbol.species](); + for (const [key, value] of other) { + if (this.has(key) && Object.is(value, this.get(key))) { + coll.set(key, value); + } + } + return coll; + } + /** + * The subtract method returns a new structure containing items where the keys and values of the original structure are not present in the other. + * + * @param other - The other Collection to filter against + */ + subtract(other) { + const coll = new this.constructor[Symbol.species](); + for (const [key, value] of this) { + if (!other.has(key) || !Object.is(value, other.get(key))) { + coll.set(key, value); + } + } + return coll; + } + /** + * The difference method returns a new structure containing items where the key is present in one of the original structures but not the other. + * + * @param other - The other Collection to filter against + */ + difference(other) { + const coll = new this.constructor[Symbol.species](); + for (const [key, value] of other) { + if (!this.has(key)) + coll.set(key, value); + } + for (const [key, value] of this) { + if (!other.has(key)) + coll.set(key, value); + } + return coll; + } + /** + * Merges two Collections together into a new Collection. + * + * @param other - The other Collection to merge with + * @param whenInSelf - Function getting the result if the entry only exists in this Collection + * @param whenInOther - Function getting the result if the entry only exists in the other Collection + * @param whenInBoth - Function getting the result if the entry exists in both Collections + * @example + * ```ts + * // Sums up the entries in two collections. + * coll.merge( + * other, + * x => ({ keep: true, value: x }), + * y => ({ keep: true, value: y }), + * (x, y) => ({ keep: true, value: x + y }), + * ); + * ``` + * @example + * ```ts + * // Intersects two collections in a left-biased manner. + * coll.merge( + * other, + * x => ({ keep: false }), + * y => ({ keep: false }), + * (x, _) => ({ keep: true, value: x }), + * ); + * ``` + */ + merge(other, whenInSelf, whenInOther, whenInBoth) { + const coll = new this.constructor[Symbol.species](); + const keys = /* @__PURE__ */ new Set([...this.keys(), ...other.keys()]); + for (const key of keys) { + const hasInSelf = this.has(key); + const hasInOther = other.has(key); + if (hasInSelf && hasInOther) { + const result = whenInBoth(this.get(key), other.get(key), key); + if (result.keep) + coll.set(key, result.value); + } else if (hasInSelf) { + const result = whenInSelf(this.get(key), key); + if (result.keep) + coll.set(key, result.value); + } else if (hasInOther) { + const result = whenInOther(other.get(key), key); + if (result.keep) + coll.set(key, result.value); + } + } + return coll; + } + /** + * The sorted method sorts the items of a collection and returns it. + * The sort is not necessarily stable in Node 10 or older. + * The default sort order is according to string Unicode code points. + * + * @param compareFunction - Specifies a function that defines the sort order. + * If omitted, the collection is sorted according to each character's Unicode code point value, + * according to the string conversion of each element. + * @example + * ```ts + * collection.sorted((userA, userB) => userA.createdTimestamp - userB.createdTimestamp); + * ``` + */ + sorted(compareFunction = _Collection.defaultSort) { + return new this.constructor[Symbol.species](this).sort((av, bv, ak, bk) => compareFunction(av, bv, ak, bk)); + } + toJSON() { + return [...this.values()]; + } + static defaultSort(firstValue, secondValue) { + return Number(firstValue > secondValue) || Number(firstValue === secondValue) - 1; + } + /** + * Creates a Collection from a list of entries. + * + * @param entries - The list of entries + * @param combine - Function to combine an existing entry with a new one + * @example + * ```ts + * Collection.combineEntries([["a", 1], ["b", 2], ["a", 2]], (x, y) => x + y); + * // returns Collection { "a" => 3, "b" => 2 } + * ``` + */ + static combineEntries(entries, combine) { + const coll = new _Collection(); + for (const [key, value] of entries) { + if (coll.has(key)) { + coll.set(key, combine(coll.get(key), value, key)); + } else { + coll.set(key, value); + } + } + return coll; + } +}; + +// src/index.ts +var version = "1.5.3"; +export { + Collection, + version +}; +//# sourceMappingURL=index.mjs.map \ No newline at end of file diff --git a/node_modules/@discordjs/collection/dist/index.mjs.map b/node_modules/@discordjs/collection/dist/index.mjs.map new file mode 100644 index 0000000..fcf72ab --- /dev/null +++ b/node_modules/@discordjs/collection/dist/index.mjs.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/collection.ts","../src/index.ts"],"sourcesContent":["/* eslint-disable no-param-reassign */\n/**\n * @internal\n */\nexport interface CollectionConstructor {\n\tnew (): Collection;\n\tnew (entries?: readonly (readonly [K, V])[] | null): Collection;\n\tnew (iterable: Iterable): Collection;\n\treadonly prototype: Collection;\n\treadonly [Symbol.species]: CollectionConstructor;\n}\n\n/**\n * Represents an immutable version of a collection\n */\nexport type ReadonlyCollection = Omit<\n\tCollection,\n\t'delete' | 'ensure' | 'forEach' | 'get' | 'reverse' | 'set' | 'sort' | 'sweep'\n> &\n\tReadonlyMap;\n\n/**\n * Separate interface for the constructor so that emitted js does not have a constructor that overwrites itself\n *\n * @internal\n */\nexport interface Collection extends Map {\n\tconstructor: CollectionConstructor;\n}\n\n/**\n * A Map with additional utility methods. This is used throughout discord.js rather than Arrays for anything that has\n * an ID, for significantly improved performance and ease-of-use.\n *\n * @typeParam K - The key type this collection holds\n * @typeParam V - The value type this collection holds\n */\nexport class Collection extends Map {\n\t/**\n\t * Obtains the value of the given key if it exists, otherwise sets and returns the value provided by the default value generator.\n\t *\n\t * @param key - The key to get if it exists, or set otherwise\n\t * @param defaultValueGenerator - A function that generates the default value\n\t * @example\n\t * ```ts\n\t * collection.ensure(guildId, () => defaultGuildConfig);\n\t * ```\n\t */\n\tpublic ensure(key: K, defaultValueGenerator: (key: K, collection: this) => V): V {\n\t\tif (this.has(key)) return this.get(key)!;\n\t\tif (typeof defaultValueGenerator !== 'function') throw new TypeError(`${defaultValueGenerator} is not a function`);\n\t\tconst defaultValue = defaultValueGenerator(key, this);\n\t\tthis.set(key, defaultValue);\n\t\treturn defaultValue;\n\t}\n\n\t/**\n\t * Checks if all of the elements exist in the collection.\n\t *\n\t * @param keys - The keys of the elements to check for\n\t * @returns `true` if all of the elements exist, `false` if at least one does not exist.\n\t */\n\tpublic hasAll(...keys: K[]) {\n\t\treturn keys.every((key) => super.has(key));\n\t}\n\n\t/**\n\t * Checks if any of the elements exist in the collection.\n\t *\n\t * @param keys - The keys of the elements to check for\n\t * @returns `true` if any of the elements exist, `false` if none exist.\n\t */\n\tpublic hasAny(...keys: K[]) {\n\t\treturn keys.some((key) => super.has(key));\n\t}\n\n\t/**\n\t * Obtains the first value(s) in this collection.\n\t *\n\t * @param amount - Amount of values to obtain from the beginning\n\t * @returns A single value if no amount is provided or an array of values, starting from the end if amount is negative\n\t */\n\tpublic first(): V | undefined;\n\tpublic first(amount: number): V[];\n\tpublic first(amount?: number): V | V[] | undefined {\n\t\tif (amount === undefined) return this.values().next().value;\n\t\tif (amount < 0) return this.last(amount * -1);\n\t\tamount = Math.min(this.size, amount);\n\t\tconst iter = this.values();\n\t\treturn Array.from({ length: amount }, (): V => iter.next().value);\n\t}\n\n\t/**\n\t * Obtains the first key(s) in this collection.\n\t *\n\t * @param amount - Amount of keys to obtain from the beginning\n\t * @returns A single key if no amount is provided or an array of keys, starting from the end if\n\t * amount is negative\n\t */\n\tpublic firstKey(): K | undefined;\n\tpublic firstKey(amount: number): K[];\n\tpublic firstKey(amount?: number): K | K[] | undefined {\n\t\tif (amount === undefined) return this.keys().next().value;\n\t\tif (amount < 0) return this.lastKey(amount * -1);\n\t\tamount = Math.min(this.size, amount);\n\t\tconst iter = this.keys();\n\t\treturn Array.from({ length: amount }, (): K => iter.next().value);\n\t}\n\n\t/**\n\t * Obtains the last value(s) in this collection.\n\t *\n\t * @param amount - Amount of values to obtain from the end\n\t * @returns A single value if no amount is provided or an array of values, starting from the start if\n\t * amount is negative\n\t */\n\tpublic last(): V | undefined;\n\tpublic last(amount: number): V[];\n\tpublic last(amount?: number): V | V[] | undefined {\n\t\tconst arr = [...this.values()];\n\t\tif (amount === undefined) return arr[arr.length - 1];\n\t\tif (amount < 0) return this.first(amount * -1);\n\t\tif (!amount) return [];\n\t\treturn arr.slice(-amount);\n\t}\n\n\t/**\n\t * Obtains the last key(s) in this collection.\n\t *\n\t * @param amount - Amount of keys to obtain from the end\n\t * @returns A single key if no amount is provided or an array of keys, starting from the start if\n\t * amount is negative\n\t */\n\tpublic lastKey(): K | undefined;\n\tpublic lastKey(amount: number): K[];\n\tpublic lastKey(amount?: number): K | K[] | undefined {\n\t\tconst arr = [...this.keys()];\n\t\tif (amount === undefined) return arr[arr.length - 1];\n\t\tif (amount < 0) return this.firstKey(amount * -1);\n\t\tif (!amount) return [];\n\t\treturn arr.slice(-amount);\n\t}\n\n\t/**\n\t * Identical to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/at | Array.at()}.\n\t * Returns the item at a given index, allowing for positive and negative integers.\n\t * Negative integers count back from the last item in the collection.\n\t *\n\t * @param index - The index of the element to obtain\n\t */\n\tpublic at(index: number) {\n\t\tindex = Math.floor(index);\n\t\tconst arr = [...this.values()];\n\t\treturn arr.at(index);\n\t}\n\n\t/**\n\t * Identical to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/at | Array.at()}.\n\t * Returns the key at a given index, allowing for positive and negative integers.\n\t * Negative integers count back from the last item in the collection.\n\t *\n\t * @param index - The index of the key to obtain\n\t */\n\tpublic keyAt(index: number) {\n\t\tindex = Math.floor(index);\n\t\tconst arr = [...this.keys()];\n\t\treturn arr.at(index);\n\t}\n\n\t/**\n\t * Obtains unique random value(s) from this collection.\n\t *\n\t * @param amount - Amount of values to obtain randomly\n\t * @returns A single value if no amount is provided or an array of values\n\t */\n\tpublic random(): V | undefined;\n\tpublic random(amount: number): V[];\n\tpublic random(amount?: number): V | V[] | undefined {\n\t\tconst arr = [...this.values()];\n\t\tif (amount === undefined) return arr[Math.floor(Math.random() * arr.length)];\n\t\tif (!arr.length || !amount) return [];\n\t\treturn Array.from(\n\t\t\t{ length: Math.min(amount, arr.length) },\n\t\t\t(): V => arr.splice(Math.floor(Math.random() * arr.length), 1)[0]!,\n\t\t);\n\t}\n\n\t/**\n\t * Obtains unique random key(s) from this collection.\n\t *\n\t * @param amount - Amount of keys to obtain randomly\n\t * @returns A single key if no amount is provided or an array\n\t */\n\tpublic randomKey(): K | undefined;\n\tpublic randomKey(amount: number): K[];\n\tpublic randomKey(amount?: number): K | K[] | undefined {\n\t\tconst arr = [...this.keys()];\n\t\tif (amount === undefined) return arr[Math.floor(Math.random() * arr.length)];\n\t\tif (!arr.length || !amount) return [];\n\t\treturn Array.from(\n\t\t\t{ length: Math.min(amount, arr.length) },\n\t\t\t(): K => arr.splice(Math.floor(Math.random() * arr.length), 1)[0]!,\n\t\t);\n\t}\n\n\t/**\n\t * Identical to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reverse | Array.reverse()}\n\t * but returns a Collection instead of an Array.\n\t */\n\tpublic reverse() {\n\t\tconst entries = [...this.entries()].reverse();\n\t\tthis.clear();\n\t\tfor (const [key, value] of entries) this.set(key, value);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Searches for a single item where the given function returns a truthy value. This behaves like\n\t * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find | Array.find()}.\n\t * All collections used in Discord.js are mapped using their `id` property, and if you want to find by id you\n\t * should use the `get` method. See\n\t * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/get | MDN} for details.\n\t *\n\t * @param fn - The function to test with (should return boolean)\n\t * @param thisArg - Value to use as `this` when executing function\n\t * @example\n\t * ```ts\n\t * collection.find(user => user.username === 'Bob');\n\t * ```\n\t */\n\tpublic find(fn: (value: V, key: K, collection: this) => value is V2): V2 | undefined;\n\tpublic find(fn: (value: V, key: K, collection: this) => unknown): V | undefined;\n\tpublic find(\n\t\tfn: (this: This, value: V, key: K, collection: this) => value is V2,\n\t\tthisArg: This,\n\t): V2 | undefined;\n\tpublic find(fn: (this: This, value: V, key: K, collection: this) => unknown, thisArg: This): V | undefined;\n\tpublic find(fn: (value: V, key: K, collection: this) => unknown, thisArg?: unknown): V | undefined {\n\t\tif (typeof fn !== 'function') throw new TypeError(`${fn} is not a function`);\n\t\tif (thisArg !== undefined) fn = fn.bind(thisArg);\n\t\tfor (const [key, val] of this) {\n\t\t\tif (fn(val, key, this)) return val;\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\t/**\n\t * Searches for the key of a single item where the given function returns a truthy value. This behaves like\n\t * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/findIndex | Array.findIndex()},\n\t * but returns the key rather than the positional index.\n\t *\n\t * @param fn - The function to test with (should return boolean)\n\t * @param thisArg - Value to use as `this` when executing function\n\t * @example\n\t * ```ts\n\t * collection.findKey(user => user.username === 'Bob');\n\t * ```\n\t */\n\tpublic findKey(fn: (value: V, key: K, collection: this) => key is K2): K2 | undefined;\n\tpublic findKey(fn: (value: V, key: K, collection: this) => unknown): K | undefined;\n\tpublic findKey(\n\t\tfn: (this: This, value: V, key: K, collection: this) => key is K2,\n\t\tthisArg: This,\n\t): K2 | undefined;\n\tpublic findKey(fn: (this: This, value: V, key: K, collection: this) => unknown, thisArg: This): K | undefined;\n\tpublic findKey(fn: (value: V, key: K, collection: this) => unknown, thisArg?: unknown): K | undefined {\n\t\tif (typeof fn !== 'function') throw new TypeError(`${fn} is not a function`);\n\t\tif (thisArg !== undefined) fn = fn.bind(thisArg);\n\t\tfor (const [key, val] of this) {\n\t\t\tif (fn(val, key, this)) return key;\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\t/**\n\t * Removes items that satisfy the provided filter function.\n\t *\n\t * @param fn - Function used to test (should return a boolean)\n\t * @param thisArg - Value to use as `this` when executing function\n\t * @returns The number of removed entries\n\t */\n\tpublic sweep(fn: (value: V, key: K, collection: this) => unknown): number;\n\tpublic sweep(fn: (this: T, value: V, key: K, collection: this) => unknown, thisArg: T): number;\n\tpublic sweep(fn: (value: V, key: K, collection: this) => unknown, thisArg?: unknown): number {\n\t\tif (typeof fn !== 'function') throw new TypeError(`${fn} is not a function`);\n\t\tif (thisArg !== undefined) fn = fn.bind(thisArg);\n\t\tconst previousSize = this.size;\n\t\tfor (const [key, val] of this) {\n\t\t\tif (fn(val, key, this)) this.delete(key);\n\t\t}\n\n\t\treturn previousSize - this.size;\n\t}\n\n\t/**\n\t * Identical to\n\t * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter | Array.filter()},\n\t * but returns a Collection instead of an Array.\n\t *\n\t * @param fn - The function to test with (should return boolean)\n\t * @param thisArg - Value to use as `this` when executing function\n\t * @example\n\t * ```ts\n\t * collection.filter(user => user.username === 'Bob');\n\t * ```\n\t */\n\tpublic filter(fn: (value: V, key: K, collection: this) => key is K2): Collection;\n\tpublic filter(fn: (value: V, key: K, collection: this) => value is V2): Collection;\n\tpublic filter(fn: (value: V, key: K, collection: this) => unknown): Collection;\n\tpublic filter(\n\t\tfn: (this: This, value: V, key: K, collection: this) => key is K2,\n\t\tthisArg: This,\n\t): Collection;\n\tpublic filter(\n\t\tfn: (this: This, value: V, key: K, collection: this) => value is V2,\n\t\tthisArg: This,\n\t): Collection;\n\tpublic filter(fn: (this: This, value: V, key: K, collection: this) => unknown, thisArg: This): Collection;\n\tpublic filter(fn: (value: V, key: K, collection: this) => unknown, thisArg?: unknown): Collection {\n\t\tif (typeof fn !== 'function') throw new TypeError(`${fn} is not a function`);\n\t\tif (thisArg !== undefined) fn = fn.bind(thisArg);\n\t\tconst results = new this.constructor[Symbol.species]();\n\t\tfor (const [key, val] of this) {\n\t\t\tif (fn(val, key, this)) results.set(key, val);\n\t\t}\n\n\t\treturn results;\n\t}\n\n\t/**\n\t * Partitions the collection into two collections where the first collection\n\t * contains the items that passed and the second contains the items that failed.\n\t *\n\t * @param fn - Function used to test (should return a boolean)\n\t * @param thisArg - Value to use as `this` when executing function\n\t * @example\n\t * ```ts\n\t * const [big, small] = collection.partition(guild => guild.memberCount > 250);\n\t * ```\n\t */\n\tpublic partition(\n\t\tfn: (value: V, key: K, collection: this) => key is K2,\n\t): [Collection, Collection, V>];\n\tpublic partition(\n\t\tfn: (value: V, key: K, collection: this) => value is V2,\n\t): [Collection, Collection>];\n\tpublic partition(fn: (value: V, key: K, collection: this) => unknown): [Collection, Collection];\n\tpublic partition(\n\t\tfn: (this: This, value: V, key: K, collection: this) => key is K2,\n\t\tthisArg: This,\n\t): [Collection, Collection, V>];\n\tpublic partition(\n\t\tfn: (this: This, value: V, key: K, collection: this) => value is V2,\n\t\tthisArg: This,\n\t): [Collection, Collection>];\n\tpublic partition(\n\t\tfn: (this: This, value: V, key: K, collection: this) => unknown,\n\t\tthisArg: This,\n\t): [Collection, Collection];\n\tpublic partition(\n\t\tfn: (value: V, key: K, collection: this) => unknown,\n\t\tthisArg?: unknown,\n\t): [Collection, Collection] {\n\t\tif (typeof fn !== 'function') throw new TypeError(`${fn} is not a function`);\n\t\tif (thisArg !== undefined) fn = fn.bind(thisArg);\n\t\tconst results: [Collection, Collection] = [\n\t\t\tnew this.constructor[Symbol.species](),\n\t\t\tnew this.constructor[Symbol.species](),\n\t\t];\n\t\tfor (const [key, val] of this) {\n\t\t\tif (fn(val, key, this)) {\n\t\t\t\tresults[0].set(key, val);\n\t\t\t} else {\n\t\t\t\tresults[1].set(key, val);\n\t\t\t}\n\t\t}\n\n\t\treturn results;\n\t}\n\n\t/**\n\t * Maps each item into a Collection, then joins the results into a single Collection. Identical in behavior to\n\t * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/flatMap | Array.flatMap()}.\n\t *\n\t * @param fn - Function that produces a new Collection\n\t * @param thisArg - Value to use as `this` when executing function\n\t * @example\n\t * ```ts\n\t * collection.flatMap(guild => guild.members.cache);\n\t * ```\n\t */\n\tpublic flatMap(fn: (value: V, key: K, collection: this) => Collection): Collection;\n\tpublic flatMap(\n\t\tfn: (this: This, value: V, key: K, collection: this) => Collection,\n\t\tthisArg: This,\n\t): Collection;\n\tpublic flatMap(fn: (value: V, key: K, collection: this) => Collection, thisArg?: unknown): Collection {\n\t\t// eslint-disable-next-line unicorn/no-array-method-this-argument\n\t\tconst collections = this.map(fn, thisArg);\n\t\treturn new this.constructor[Symbol.species]().concat(...collections);\n\t}\n\n\t/**\n\t * Maps each item to another value into an array. Identical in behavior to\n\t * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map | Array.map()}.\n\t *\n\t * @param fn - Function that produces an element of the new array, taking three arguments\n\t * @param thisArg - Value to use as `this` when executing function\n\t * @example\n\t * ```ts\n\t * collection.map(user => user.tag);\n\t * ```\n\t */\n\tpublic map(fn: (value: V, key: K, collection: this) => T): T[];\n\tpublic map(fn: (this: This, value: V, key: K, collection: this) => T, thisArg: This): T[];\n\tpublic map(fn: (value: V, key: K, collection: this) => T, thisArg?: unknown): T[] {\n\t\tif (typeof fn !== 'function') throw new TypeError(`${fn} is not a function`);\n\t\tif (thisArg !== undefined) fn = fn.bind(thisArg);\n\t\tconst iter = this.entries();\n\t\treturn Array.from({ length: this.size }, (): T => {\n\t\t\tconst [key, value] = iter.next().value;\n\t\t\treturn fn(value, key, this);\n\t\t});\n\t}\n\n\t/**\n\t * Maps each item to another value into a collection. Identical in behavior to\n\t * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map | Array.map()}.\n\t *\n\t * @param fn - Function that produces an element of the new collection, taking three arguments\n\t * @param thisArg - Value to use as `this` when executing function\n\t * @example\n\t * ```ts\n\t * collection.mapValues(user => user.tag);\n\t * ```\n\t */\n\tpublic mapValues(fn: (value: V, key: K, collection: this) => T): Collection;\n\tpublic mapValues(fn: (this: This, value: V, key: K, collection: this) => T, thisArg: This): Collection;\n\tpublic mapValues(fn: (value: V, key: K, collection: this) => T, thisArg?: unknown): Collection {\n\t\tif (typeof fn !== 'function') throw new TypeError(`${fn} is not a function`);\n\t\tif (thisArg !== undefined) fn = fn.bind(thisArg);\n\t\tconst coll = new this.constructor[Symbol.species]();\n\t\tfor (const [key, val] of this) coll.set(key, fn(val, key, this));\n\t\treturn coll;\n\t}\n\n\t/**\n\t * Checks if there exists an item that passes a test. Identical in behavior to\n\t * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some | Array.some()}.\n\t *\n\t * @param fn - Function used to test (should return a boolean)\n\t * @param thisArg - Value to use as `this` when executing function\n\t * @example\n\t * ```ts\n\t * collection.some(user => user.discriminator === '0000');\n\t * ```\n\t */\n\tpublic some(fn: (value: V, key: K, collection: this) => unknown): boolean;\n\tpublic some(fn: (this: T, value: V, key: K, collection: this) => unknown, thisArg: T): boolean;\n\tpublic some(fn: (value: V, key: K, collection: this) => unknown, thisArg?: unknown): boolean {\n\t\tif (typeof fn !== 'function') throw new TypeError(`${fn} is not a function`);\n\t\tif (thisArg !== undefined) fn = fn.bind(thisArg);\n\t\tfor (const [key, val] of this) {\n\t\t\tif (fn(val, key, this)) return true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t * Checks if all items passes a test. Identical in behavior to\n\t * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/every | Array.every()}.\n\t *\n\t * @param fn - Function used to test (should return a boolean)\n\t * @param thisArg - Value to use as `this` when executing function\n\t * @example\n\t * ```ts\n\t * collection.every(user => !user.bot);\n\t * ```\n\t */\n\tpublic every(fn: (value: V, key: K, collection: this) => key is K2): this is Collection;\n\tpublic every(fn: (value: V, key: K, collection: this) => value is V2): this is Collection;\n\tpublic every(fn: (value: V, key: K, collection: this) => unknown): boolean;\n\tpublic every(\n\t\tfn: (this: This, value: V, key: K, collection: this) => key is K2,\n\t\tthisArg: This,\n\t): this is Collection;\n\tpublic every(\n\t\tfn: (this: This, value: V, key: K, collection: this) => value is V2,\n\t\tthisArg: This,\n\t): this is Collection;\n\tpublic every(fn: (this: This, value: V, key: K, collection: this) => unknown, thisArg: This): boolean;\n\tpublic every(fn: (value: V, key: K, collection: this) => unknown, thisArg?: unknown): boolean {\n\t\tif (typeof fn !== 'function') throw new TypeError(`${fn} is not a function`);\n\t\tif (thisArg !== undefined) fn = fn.bind(thisArg);\n\t\tfor (const [key, val] of this) {\n\t\t\tif (!fn(val, key, this)) return false;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\t/**\n\t * Applies a function to produce a single value. Identical in behavior to\n\t * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce | Array.reduce()}.\n\t *\n\t * @param fn - Function used to reduce, taking four arguments; `accumulator`, `currentValue`, `currentKey`,\n\t * and `collection`\n\t * @param initialValue - Starting value for the accumulator\n\t * @example\n\t * ```ts\n\t * collection.reduce((acc, guild) => acc + guild.memberCount, 0);\n\t * ```\n\t */\n\tpublic reduce(fn: (accumulator: T, value: V, key: K, collection: this) => T, initialValue?: T): T {\n\t\tif (typeof fn !== 'function') throw new TypeError(`${fn} is not a function`);\n\t\tlet accumulator!: T;\n\n\t\tconst iterator = this.entries();\n\t\tif (initialValue === undefined) {\n\t\t\tif (this.size === 0) throw new TypeError('Reduce of empty collection with no initial value');\n\t\t\taccumulator = iterator.next().value[1];\n\t\t} else {\n\t\t\taccumulator = initialValue;\n\t\t}\n\n\t\tfor (const [key, value] of iterator) {\n\t\t\taccumulator = fn(accumulator, value, key, this);\n\t\t}\n\n\t\treturn accumulator;\n\t}\n\n\t/**\n\t * Identical to\n\t * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/forEach | Map.forEach()},\n\t * but returns the collection instead of undefined.\n\t *\n\t * @param fn - Function to execute for each element\n\t * @param thisArg - Value to use as `this` when executing function\n\t * @example\n\t * ```ts\n\t * collection\n\t * .each(user => console.log(user.username))\n\t * .filter(user => user.bot)\n\t * .each(user => console.log(user.username));\n\t * ```\n\t */\n\tpublic each(fn: (value: V, key: K, collection: this) => void): this;\n\tpublic each(fn: (this: T, value: V, key: K, collection: this) => void, thisArg: T): this;\n\tpublic each(fn: (value: V, key: K, collection: this) => void, thisArg?: unknown): this {\n\t\tif (typeof fn !== 'function') throw new TypeError(`${fn} is not a function`);\n\t\tif (thisArg !== undefined) fn = fn.bind(thisArg);\n\n\t\tfor (const [key, value] of this) {\n\t\t\tfn(value, key, this);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Runs a function on the collection and returns the collection.\n\t *\n\t * @param fn - Function to execute\n\t * @param thisArg - Value to use as `this` when executing function\n\t * @example\n\t * ```ts\n\t * collection\n\t * .tap(coll => console.log(coll.size))\n\t * .filter(user => user.bot)\n\t * .tap(coll => console.log(coll.size))\n\t * ```\n\t */\n\tpublic tap(fn: (collection: this) => void): this;\n\tpublic tap(fn: (this: T, collection: this) => void, thisArg: T): this;\n\tpublic tap(fn: (collection: this) => void, thisArg?: unknown): this {\n\t\tif (typeof fn !== 'function') throw new TypeError(`${fn} is not a function`);\n\t\tif (thisArg !== undefined) fn = fn.bind(thisArg);\n\t\tfn(this);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Creates an identical shallow copy of this collection.\n\t *\n\t * @example\n\t * ```ts\n\t * const newColl = someColl.clone();\n\t * ```\n\t */\n\tpublic clone(): Collection {\n\t\treturn new this.constructor[Symbol.species](this);\n\t}\n\n\t/**\n\t * Combines this collection with others into a new collection. None of the source collections are modified.\n\t *\n\t * @param collections - Collections to merge\n\t * @example\n\t * ```ts\n\t * const newColl = someColl.concat(someOtherColl, anotherColl, ohBoyAColl);\n\t * ```\n\t */\n\tpublic concat(...collections: ReadonlyCollection[]) {\n\t\tconst newColl = this.clone();\n\t\tfor (const coll of collections) {\n\t\t\tfor (const [key, val] of coll) newColl.set(key, val);\n\t\t}\n\n\t\treturn newColl;\n\t}\n\n\t/**\n\t * Checks if this collection shares identical items with another.\n\t * This is different to checking for equality using equal-signs, because\n\t * the collections may be different objects, but contain the same data.\n\t *\n\t * @param collection - Collection to compare with\n\t * @returns Whether the collections have identical contents\n\t */\n\tpublic equals(collection: ReadonlyCollection) {\n\t\tif (!collection) return false; // runtime check\n\t\tif (this === collection) return true;\n\t\tif (this.size !== collection.size) return false;\n\t\tfor (const [key, value] of this) {\n\t\t\tif (!collection.has(key) || value !== collection.get(key)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n\n\t/**\n\t * The sort method sorts the items of a collection in place and returns it.\n\t * The sort is not necessarily stable in Node 10 or older.\n\t * The default sort order is according to string Unicode code points.\n\t *\n\t * @param compareFunction - Specifies a function that defines the sort order.\n\t * If omitted, the collection is sorted according to each character's Unicode code point value, according to the string conversion of each element.\n\t * @example\n\t * ```ts\n\t * collection.sort((userA, userB) => userA.createdTimestamp - userB.createdTimestamp);\n\t * ```\n\t */\n\tpublic sort(compareFunction: Comparator = Collection.defaultSort) {\n\t\tconst entries = [...this.entries()];\n\t\tentries.sort((a, b): number => compareFunction(a[1], b[1], a[0], b[0]));\n\n\t\t// Perform clean-up\n\t\tsuper.clear();\n\n\t\t// Set the new entries\n\t\tfor (const [key, value] of entries) {\n\t\t\tsuper.set(key, value);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * The intersect method returns a new structure containing items where the keys and values are present in both original structures.\n\t *\n\t * @param other - The other Collection to filter against\n\t */\n\tpublic intersect(other: ReadonlyCollection): Collection {\n\t\tconst coll = new this.constructor[Symbol.species]();\n\t\tfor (const [key, value] of other) {\n\t\t\tif (this.has(key) && Object.is(value, this.get(key))) {\n\t\t\t\tcoll.set(key, value);\n\t\t\t}\n\t\t}\n\n\t\treturn coll;\n\t}\n\n\t/**\n\t * The subtract method returns a new structure containing items where the keys and values of the original structure are not present in the other.\n\t *\n\t * @param other - The other Collection to filter against\n\t */\n\tpublic subtract(other: ReadonlyCollection): Collection {\n\t\tconst coll = new this.constructor[Symbol.species]();\n\t\tfor (const [key, value] of this) {\n\t\t\tif (!other.has(key) || !Object.is(value, other.get(key))) {\n\t\t\t\tcoll.set(key, value);\n\t\t\t}\n\t\t}\n\n\t\treturn coll;\n\t}\n\n\t/**\n\t * The difference method returns a new structure containing items where the key is present in one of the original structures but not the other.\n\t *\n\t * @param other - The other Collection to filter against\n\t */\n\tpublic difference(other: ReadonlyCollection): Collection {\n\t\tconst coll = new this.constructor[Symbol.species]();\n\t\tfor (const [key, value] of other) {\n\t\t\tif (!this.has(key)) coll.set(key, value);\n\t\t}\n\n\t\tfor (const [key, value] of this) {\n\t\t\tif (!other.has(key)) coll.set(key, value);\n\t\t}\n\n\t\treturn coll;\n\t}\n\n\t/**\n\t * Merges two Collections together into a new Collection.\n\t *\n\t * @param other - The other Collection to merge with\n\t * @param whenInSelf - Function getting the result if the entry only exists in this Collection\n\t * @param whenInOther - Function getting the result if the entry only exists in the other Collection\n\t * @param whenInBoth - Function getting the result if the entry exists in both Collections\n\t * @example\n\t * ```ts\n\t * // Sums up the entries in two collections.\n\t * coll.merge(\n\t * other,\n\t * x => ({ keep: true, value: x }),\n\t * y => ({ keep: true, value: y }),\n\t * (x, y) => ({ keep: true, value: x + y }),\n\t * );\n\t * ```\n\t * @example\n\t * ```ts\n\t * // Intersects two collections in a left-biased manner.\n\t * coll.merge(\n\t * other,\n\t * x => ({ keep: false }),\n\t * y => ({ keep: false }),\n\t * (x, _) => ({ keep: true, value: x }),\n\t * );\n\t * ```\n\t */\n\tpublic merge(\n\t\tother: ReadonlyCollection,\n\t\twhenInSelf: (value: V, key: K) => Keep,\n\t\twhenInOther: (valueOther: T, key: K) => Keep,\n\t\twhenInBoth: (value: V, valueOther: T, key: K) => Keep,\n\t): Collection {\n\t\tconst coll = new this.constructor[Symbol.species]();\n\t\tconst keys = new Set([...this.keys(), ...other.keys()]);\n\n\t\tfor (const key of keys) {\n\t\t\tconst hasInSelf = this.has(key);\n\t\t\tconst hasInOther = other.has(key);\n\n\t\t\tif (hasInSelf && hasInOther) {\n\t\t\t\tconst result = whenInBoth(this.get(key)!, other.get(key)!, key);\n\t\t\t\tif (result.keep) coll.set(key, result.value);\n\t\t\t} else if (hasInSelf) {\n\t\t\t\tconst result = whenInSelf(this.get(key)!, key);\n\t\t\t\tif (result.keep) coll.set(key, result.value);\n\t\t\t} else if (hasInOther) {\n\t\t\t\tconst result = whenInOther(other.get(key)!, key);\n\t\t\t\tif (result.keep) coll.set(key, result.value);\n\t\t\t}\n\t\t}\n\n\t\treturn coll;\n\t}\n\n\t/**\n\t * The sorted method sorts the items of a collection and returns it.\n\t * The sort is not necessarily stable in Node 10 or older.\n\t * The default sort order is according to string Unicode code points.\n\t *\n\t * @param compareFunction - Specifies a function that defines the sort order.\n\t * If omitted, the collection is sorted according to each character's Unicode code point value,\n\t * according to the string conversion of each element.\n\t * @example\n\t * ```ts\n\t * collection.sorted((userA, userB) => userA.createdTimestamp - userB.createdTimestamp);\n\t * ```\n\t */\n\tpublic sorted(compareFunction: Comparator = Collection.defaultSort) {\n\t\treturn new this.constructor[Symbol.species](this).sort((av, bv, ak, bk) => compareFunction(av, bv, ak, bk));\n\t}\n\n\tpublic toJSON() {\n\t\t// toJSON is called recursively by JSON.stringify.\n\t\treturn [...this.values()];\n\t}\n\n\tprivate static defaultSort(firstValue: V, secondValue: V): number {\n\t\treturn Number(firstValue > secondValue) || Number(firstValue === secondValue) - 1;\n\t}\n\n\t/**\n\t * Creates a Collection from a list of entries.\n\t *\n\t * @param entries - The list of entries\n\t * @param combine - Function to combine an existing entry with a new one\n\t * @example\n\t * ```ts\n\t * Collection.combineEntries([[\"a\", 1], [\"b\", 2], [\"a\", 2]], (x, y) => x + y);\n\t * // returns Collection { \"a\" => 3, \"b\" => 2 }\n\t * ```\n\t */\n\tpublic static combineEntries(\n\t\tentries: Iterable<[K, V]>,\n\t\tcombine: (firstValue: V, secondValue: V, key: K) => V,\n\t): Collection {\n\t\tconst coll = new Collection();\n\t\tfor (const [key, value] of entries) {\n\t\t\tif (coll.has(key)) {\n\t\t\t\tcoll.set(key, combine(coll.get(key)!, value, key));\n\t\t\t} else {\n\t\t\t\tcoll.set(key, value);\n\t\t\t}\n\t\t}\n\n\t\treturn coll;\n\t}\n}\n\n/**\n * @internal\n */\nexport type Keep = { keep: false } | { keep: true; value: V };\n\n/**\n * @internal\n */\nexport type Comparator = (firstValue: V, secondValue: V, firstKey: K, secondKey: K) => number;\n","export * from './collection.js';\n\n/**\n * The {@link https://github.com/discordjs/discord.js/blob/main/packages/collection/#readme | @discordjs/collection} version\n * that you are currently using.\n */\n// This needs to explicitly be `string` so it is not typed as a \"const string\" that gets injected by esbuild\nexport const version = '1.5.3' as string;\n"],"mappings":"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","names":[]} \ No newline at end of file diff --git a/node_modules/@discordjs/collection/package.json b/node_modules/@discordjs/collection/package.json new file mode 100644 index 0000000..81e2418 --- /dev/null +++ b/node_modules/@discordjs/collection/package.json @@ -0,0 +1,76 @@ +{ + "name": "@discordjs/collection", + "version": "1.5.3", + "description": "Utility data structure used in discord.js", + "scripts": { + "test": "vitest run", + "build": "tsup", + "build:docs": "tsc -p tsconfig.docs.json", + "lint": "prettier --check . && cross-env TIMING=1 eslint src __tests__ --ext .mjs,.js,.ts --format=pretty", + "format": "prettier --write . && cross-env TIMING=1 eslint src __tests__ --ext .mjs,.js,.ts --fix --format=pretty", + "fmt": "yarn format", + "docs": "yarn build:docs && api-extractor run --local && api-extractor run --local --config ./api-extractor-docs.json", + "prepack": "yarn lint && yarn test && yarn build", + "changelog": "git cliff --prepend ./CHANGELOG.md -u -c ./cliff.toml -r ../../ --include-path 'packages/collection/*'", + "release": "cliff-jumper" + }, + "main": "./dist/index.js", + "module": "./dist/index.mjs", + "types": "./dist/index.d.ts", + "exports": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.js" + }, + "directories": { + "lib": "src", + "test": "__tests__" + }, + "files": [ + "dist" + ], + "contributors": [ + "Crawl ", + "Amish Shah ", + "SpaceEEC ", + "Vlad Frangu ", + "Aura Román " + ], + "license": "Apache-2.0", + "keywords": [ + "map", + "collection", + "utility" + ], + "repository": { + "type": "git", + "url": "https://github.com/discordjs/discord.js.git", + "directory": "packages/collection" + }, + "bugs": { + "url": "https://github.com/discordjs/discord.js/issues" + }, + "homepage": "https://discord.js.org", + "devDependencies": { + "@favware/cliff-jumper": "^2.1.1", + "@microsoft/api-extractor": "^7.36.4", + "@types/node": "16.18.40", + "@vitest/coverage-v8": "^0.34.2", + "cross-env": "^7.0.3", + "esbuild-plugin-version-injector": "^1.2.0", + "eslint": "^8.47.0", + "eslint-config-neon": "^0.1.47", + "eslint-formatter-pretty": "^5.0.0", + "prettier": "^2.8.8", + "tsup": "^7.2.0", + "turbo": "^1.10.12", + "typescript": "^5.1.6", + "vitest": "^0.34.2" + }, + "engines": { + "node": ">=16.11.0" + }, + "publishConfig": { + "access": "public" + } +} \ No newline at end of file diff --git a/node_modules/@discordjs/formatters/LICENSE b/node_modules/@discordjs/formatters/LICENSE new file mode 100644 index 0000000..e2baac1 --- /dev/null +++ b/node_modules/@discordjs/formatters/LICENSE @@ -0,0 +1,191 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + Copyright 2021 Noel Buechler + Copyright 2021 Vlad Frangu + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/node_modules/@discordjs/formatters/README.md b/node_modules/@discordjs/formatters/README.md new file mode 100644 index 0000000..f4da774 --- /dev/null +++ b/node_modules/@discordjs/formatters/README.md @@ -0,0 +1,83 @@ +
+
+

+ discord.js +

+
+

+ Discord server + npm version + npm downloads + Build status + Last commit. + Code coverage +

+

+ Vercel + Cloudflare Workers +

+
+ +## About + +`@discordjs/formatters` is a collection of functions for formatting strings to be used on Discord. + +## Installation + +**Node.js 16.11.0 or newer is required.** + +```sh +npm install @discordjs/formatters +yarn add @discordjs/formatters +pnpm add @discordjs/formatters +bun add @discordjs/formatters +``` + +## Example usage + +````ts +import { codeBlock } from '@discordjs/formatters'; + +const formattedCode = codeBlock('hello world!'); +console.log(formattedCode); + +// Prints: +// ``` +// hello world! +// ``` +```` + +## Links + +- [Website][website] ([source][website-source]) +- [Documentation][documentation] +- [Guide][guide] ([source][guide-source]) + Also see the v13 to v14 [Update Guide][guide-update], which includes updated and removed items from the library. +- [discord.js Discord server][discord] +- [Discord API Discord server][discord-api] +- [GitHub][source] +- [npm][npm] +- [Related libraries][related-libs] + +## Contributing + +Before creating an issue, please ensure that it hasn't already been reported/suggested, and double-check the +[documentation][documentation]. +See [the contribution guide][contributing] if you'd like to submit a PR. + +## Help + +If you don't understand something in the documentation, you are experiencing problems, or you just need a gentle nudge in the right direction, please don't hesitate to join our official [discord.js Server][discord]. + +[website]: https://discord.js.org +[website-source]: https://github.com/discordjs/discord.js/tree/main/apps/website +[documentation]: https://discord.js.org/docs/packages/formatters/stable +[guide]: https://discordjs.guide/ +[guide-source]: https://github.com/discordjs/guide +[guide-update]: https://discordjs.guide/additional-info/changes-in-v14.html +[discord]: https://discord.gg/djs +[discord-api]: https://discord.gg/discord-api +[source]: https://github.com/discordjs/discord.js/tree/main/packages/formatters +[npm]: https://www.npmjs.com/package/@discordjs/formatters +[related-libs]: https://discord.com/developers/docs/topics/community-resources#libraries +[contributing]: https://github.com/discordjs/discord.js/blob/main/.github/CONTRIBUTING.md diff --git a/node_modules/@discordjs/formatters/dist/index.d.mts b/node_modules/@discordjs/formatters/dist/index.d.mts new file mode 100644 index 0000000..c45c281 --- /dev/null +++ b/node_modules/@discordjs/formatters/dist/index.d.mts @@ -0,0 +1,739 @@ +import { URL } from 'node:url'; +import { Snowflake } from 'discord-api-types/globals'; + +/** + * The options that affect what will be escaped. + */ +interface EscapeMarkdownOptions { + /** + * Whether to escape bold text. + * + * @defaultValue `true` + */ + bold?: boolean; + /** + * Whether to escape bulleted lists. + * + * @defaultValue `false` + */ + bulletedList?: boolean; + /** + * Whether to escape code blocks. + * + * @defaultValue `true` + */ + codeBlock?: boolean; + /** + * Whether to escape text inside code blocks. + * + * @defaultValue `true` + */ + codeBlockContent?: boolean; + /** + * Whether to escape `\`. + * + * @defaultValue `true` + */ + escape?: boolean; + /** + * Whether to escape headings. + * + * @defaultValue `false` + */ + heading?: boolean; + /** + * Whether to escape inline code. + * + * @defaultValue `true` + */ + inlineCode?: boolean; + /** + * Whether to escape text inside inline code. + * + * @defaultValue `true` + */ + inlineCodeContent?: boolean; + /** + * Whether to escape italics. + * + * @defaultValue `true` + */ + italic?: boolean; + /** + * Whether to escape masked links. + * + * @defaultValue `false` + */ + maskedLink?: boolean; + /** + * Whether to escape numbered lists. + * + * @defaultValue `false` + */ + numberedList?: boolean; + /** + * Whether to escape spoilers. + * + * @defaultValue `true` + */ + spoiler?: boolean; + /** + * Whether to escape strikethroughs. + * + * @defaultValue `true` + */ + strikethrough?: boolean; + /** + * Whether to escape underlines. + * + * @defaultValue `true` + */ + underline?: boolean; +} +/** + * Escapes any Discord-flavored markdown in a string. + * + * @param text - Content to escape + * @param options - Options for escaping the markdown + */ +declare function escapeMarkdown(text: string, options?: EscapeMarkdownOptions): string; +/** + * Escapes code block markdown in a string. + * + * @param text - Content to escape + */ +declare function escapeCodeBlock(text: string): string; +/** + * Escapes inline code markdown in a string. + * + * @param text - Content to escape + */ +declare function escapeInlineCode(text: string): string; +/** + * Escapes italic markdown in a string. + * + * @param text - Content to escape + */ +declare function escapeItalic(text: string): string; +/** + * Escapes bold markdown in a string. + * + * @param text - Content to escape + */ +declare function escapeBold(text: string): string; +/** + * Escapes underline markdown in a string. + * + * @param text - Content to escape + */ +declare function escapeUnderline(text: string): string; +/** + * Escapes strikethrough markdown in a string. + * + * @param text - Content to escape + */ +declare function escapeStrikethrough(text: string): string; +/** + * Escapes spoiler markdown in a string. + * + * @param text - Content to escape + */ +declare function escapeSpoiler(text: string): string; +/** + * Escapes escape characters in a string. + * + * @param text - Content to escape + */ +declare function escapeEscape(text: string): string; +/** + * Escapes heading characters in a string. + * + * @param text - Content to escape + */ +declare function escapeHeading(text: string): string; +/** + * Escapes bulleted list characters in a string. + * + * @param text - Content to escape + */ +declare function escapeBulletedList(text: string): string; +/** + * Escapes numbered list characters in a string. + * + * @param text - Content to escape + */ +declare function escapeNumberedList(text: string): string; +/** + * Escapes masked link characters in a string. + * + * @param text - Content to escape + */ +declare function escapeMaskedLink(text: string): string; + +/** + * Wraps the content inside a code block with no language. + * + * @typeParam Content - This is inferred by the supplied content + * @param content - The content to wrap + */ +declare function codeBlock(content: Content): `\`\`\`\n${Content}\n\`\`\``; +/** + * Wraps the content inside a code block with the specified language. + * + * @typeParam Language - This is inferred by the supplied language + * @typeParam Content - This is inferred by the supplied content + * @param language - The language for the code block + * @param content - The content to wrap + */ +declare function codeBlock(language: Language, content: Content): `\`\`\`${Language}\n${Content}\n\`\`\``; +/** + * Wraps the content inside \`backticks\` which formats it as inline code. + * + * @typeParam Content - This is inferred by the supplied content + * @param content - The content to wrap + */ +declare function inlineCode(content: Content): `\`${Content}\``; +/** + * Formats the content into italic text. + * + * @typeParam Content - This is inferred by the supplied content + * @param content - The content to wrap + */ +declare function italic(content: Content): `_${Content}_`; +/** + * Formats the content into bold text. + * + * @typeParam Content - This is inferred by the supplied content + * @param content - The content to wrap + */ +declare function bold(content: Content): `**${Content}**`; +/** + * Formats the content into underscored text. + * + * @typeParam Content - This is inferred by the supplied content + * @param content - The content to wrap + * @deprecated Use {@link underline} instead. + */ +declare function underscore(content: Content): `__${Content}__`; +/** + * Formats the content into underlined text. + * + * @typeParam Content - This is inferred by the supplied content + * @param content - The content to wrap + */ +declare function underline(content: Content): `__${Content}__`; +/** + * Formats the content into strike-through text. + * + * @typeParam Content - This is inferred by the supplied content + * @param content - The content to wrap + */ +declare function strikethrough(content: Content): `~~${Content}~~`; +/** + * Formats the content into a quote. + * + * @remarks This needs to be at the start of the line for Discord to format it. + * @typeParam Content - This is inferred by the supplied content + * @param content - The content to wrap + */ +declare function quote(content: Content): `> ${Content}`; +/** + * Formats the content into a block quote. + * + * @remarks This needs to be at the start of the line for Discord to format it. + * @typeParam Content - This is inferred by the supplied content + * @param content - The content to wrap + */ +declare function blockQuote(content: Content): `>>> ${Content}`; +/** + * Wraps the URL into `<>` which stops it from embedding. + * + * @typeParam Content - This is inferred by the supplied content + * @param url - The URL to wrap + */ +declare function hideLinkEmbed(url: Content): `<${Content}>`; +/** + * Wraps the URL into `<>` which stops it from embedding. + * + * @param url - The URL to wrap + */ +declare function hideLinkEmbed(url: URL): `<${string}>`; +/** + * Formats the content and the URL into a masked URL. + * + * @typeParam Content - This is inferred by the supplied content + * @param content - The content to display + * @param url - The URL the content links to + */ +declare function hyperlink(content: Content, url: URL): `[${Content}](${string})`; +/** + * Formats the content and the URL into a masked URL. + * + * @typeParam Content - This is inferred by the supplied content + * @typeParam Url - This is inferred by the supplied URL + * @param content - The content to display + * @param url - The URL the content links to + */ +declare function hyperlink(content: Content, url: Url): `[${Content}](${Url})`; +/** + * Formats the content and the URL into a masked URL with a custom tooltip. + * + * @typeParam Content - This is inferred by the supplied content + * @typeParam Title - This is inferred by the supplied title + * @param content - The content to display + * @param url - The URL the content links to + * @param title - The title shown when hovering on the masked link + */ +declare function hyperlink(content: Content, url: URL, title: Title): `[${Content}](${string} "${Title}")`; +/** + * Formats the content and the URL into a masked URL with a custom tooltip. + * + * @typeParam Content - This is inferred by the supplied content + * @typeParam Url - This is inferred by the supplied URL + * @typeParam Title - This is inferred by the supplied title + * @param content - The content to display + * @param url - The URL the content links to + * @param title - The title shown when hovering on the masked link + */ +declare function hyperlink(content: Content, url: Url, title: Title): `[${Content}](${Url} "${Title}")`; +/** + * Formats the content into a spoiler. + * + * @typeParam Content - This is inferred by the supplied content + * @param content - The content to wrap + */ +declare function spoiler(content: Content): `||${Content}||`; +/** + * Formats a user id into a user mention. + * + * @typeParam UserId - This is inferred by the supplied user id + * @param userId - The user id to format + */ +declare function userMention(userId: UserId): `<@${UserId}>`; +/** + * Formats a channel id into a channel mention. + * + * @typeParam ChannelId - This is inferred by the supplied channel id + * @param channelId - The channel id to format + */ +declare function channelMention(channelId: ChannelId): `<#${ChannelId}>`; +/** + * Formats a role id into a role mention. + * + * @typeParam RoleId - This is inferred by the supplied role id + * @param roleId - The role id to format + */ +declare function roleMention(roleId: RoleId): `<@&${RoleId}>`; +/** + * Formats a role id into a linked role mention. + * + * @typeParam RoleId - This is inferred by the supplied role id + * @param roleId - The role id to format + */ +declare function linkedRoleMention(roleId: RoleId): ``; +/** + * Formats an application command name, subcommand group name, subcommand name, and id into an application command mention. + * + * @typeParam CommandName - This is inferred by the supplied command name + * @typeParam SubcommandGroupName - This is inferred by the supplied subcommand group name + * @typeParam SubcommandName - This is inferred by the supplied subcommand name + * @typeParam CommandId - This is inferred by the supplied command id + * @param commandName - The application command name to format + * @param subcommandGroupName - The subcommand group name to format + * @param subcommandName - The subcommand name to format + * @param commandId - The application command id to format + */ +declare function chatInputApplicationCommandMention(commandName: CommandName, subcommandGroupName: SubcommandGroupName, subcommandName: SubcommandName, commandId: CommandId): ``; +/** + * Formats an application command name, subcommand name, and id into an application command mention. + * + * @typeParam CommandName - This is inferred by the supplied command name + * @typeParam SubcommandName - This is inferred by the supplied subcommand name + * @typeParam CommandId - This is inferred by the supplied command id + * @param commandName - The application command name to format + * @param subcommandName - The subcommand name to format + * @param commandId - The application command id to format + */ +declare function chatInputApplicationCommandMention(commandName: CommandName, subcommandName: SubcommandName, commandId: CommandId): ``; +/** + * Formats an application command name and id into an application command mention. + * + * @typeParam CommandName - This is inferred by the supplied command name + * @typeParam CommandId - This is inferred by the supplied command id + * @param commandName - The application command name to format + * @param commandId - The application command id to format + */ +declare function chatInputApplicationCommandMention(commandName: CommandName, commandId: CommandId): ``; +/** + * Formats a non-animated emoji id into a fully qualified emoji identifier. + * + * @typeParam EmojiId - This is inferred by the supplied emoji id + * @param emojiId - The emoji id to format + */ +declare function formatEmoji(emojiId: EmojiId, animated?: false): `<:emoji:${EmojiId}>`; +/** + * Formats an animated emoji id into a fully qualified emoji identifier. + * + * @typeParam EmojiId - This is inferred by the supplied emoji id + * @param emojiId - The emoji id to format + * @param animated - Whether the emoji is animated + */ +declare function formatEmoji(emojiId: EmojiId, animated?: true): ``; +/** + * Formats an emoji id into a fully qualified emoji identifier. + * + * @typeParam EmojiId - This is inferred by the supplied emoji id + * @param emojiId - The emoji id to format + * @param animated - Whether the emoji is animated + */ +declare function formatEmoji(emojiId: EmojiId, animated?: boolean): `<:emoji:${EmojiId}>` | ``; +/** + * Formats a non-animated emoji id and name into a fully qualified emoji identifier. + * + * @typeParam EmojiId - This is inferred by the supplied emoji id + * @typeParam EmojiName - This is inferred by the supplied name + * @param options - The options for formatting an emoji + */ +declare function formatEmoji(options: FormatEmojiOptions & { + animated: true; +}): ``; +/** + * Formats an animated emoji id and name into a fully qualified emoji identifier. + * + * @typeParam EmojiId - This is inferred by the supplied emoji id + * @typeParam EmojiName - This is inferred by the supplied name + * @param options - The options for formatting an emoji + */ +declare function formatEmoji(options: FormatEmojiOptions & { + animated?: false; +}): `<:${EmojiName}:${EmojiId}>`; +/** + * Formats an emoji id and name into a fully qualified emoji identifier. + * + * @typeParam EmojiId - This is inferred by the supplied emoji id + * @typeParam EmojiName - This is inferred by the supplied emoji name + * @param options - The options for formatting an emoji + */ +declare function formatEmoji(options: FormatEmojiOptions): `<:${EmojiName}:${EmojiId}>` | ``; +/** + * The options for formatting an emoji. + * + * @typeParam EmojiId - This is inferred by the supplied emoji id + * @typeParam EmojiName - This is inferred by the supplied emoji name + */ +interface FormatEmojiOptions { + /** + * Whether the emoji is animated + */ + animated?: boolean; + /** + * The emoji id to format + */ + id: EmojiId; + /** + * The name of the emoji + */ + name?: EmojiName; +} +/** + * Formats a channel link for a direct message channel. + * + * @typeParam ChannelId - This is inferred by the supplied channel id + * @param channelId - The channel's id + */ +declare function channelLink(channelId: ChannelId): `https://discord.com/channels/@me/${ChannelId}`; +/** + * Formats a channel link for a guild channel. + * + * @typeParam ChannelId - This is inferred by the supplied channel id + * @typeParam GuildId - This is inferred by the supplied guild id + * @param channelId - The channel's id + * @param guildId - The guild's id + */ +declare function channelLink(channelId: ChannelId, guildId: GuildId): `https://discord.com/channels/${GuildId}/${ChannelId}`; +/** + * Formats a message link for a direct message channel. + * + * @typeParam ChannelId - This is inferred by the supplied channel id + * @typeParam MessageId - This is inferred by the supplied message id + * @param channelId - The channel's id + * @param messageId - The message's id + */ +declare function messageLink(channelId: ChannelId, messageId: MessageId): `https://discord.com/channels/@me/${ChannelId}/${MessageId}`; +/** + * Formats a message link for a guild channel. + * + * @typeParam ChannelId - This is inferred by the supplied channel id + * @typeParam MessageId - This is inferred by the supplied message id + * @typeParam GuildId - This is inferred by the supplied guild id + * @param channelId - The channel's id + * @param messageId - The message's id + * @param guildId - The guild's id + */ +declare function messageLink(channelId: ChannelId, messageId: MessageId, guildId: GuildId): `https://discord.com/channels/${GuildId}/${ChannelId}/${MessageId}`; +/** + * The heading levels for expanded markdown. + */ +declare enum HeadingLevel { + /** + * The first heading level. + */ + One = 1, + /** + * The second heading level. + */ + Two = 2, + /** + * The third heading level. + */ + Three = 3 +} +/** + * Formats the content into a heading level. + * + * @typeParam Content - This is inferred by the supplied content + * @param content - The content to wrap + * @param level - The heading level + */ +declare function heading(content: Content, level?: HeadingLevel.One): `# ${Content}`; +/** + * Formats the content into a heading level. + * + * @typeParam Content - This is inferred by the supplied content + * @param content - The content to wrap + * @param level - The heading level + */ +declare function heading(content: Content, level: HeadingLevel.Two): `## ${Content}`; +/** + * Formats the content into a heading level. + * + * @typeParam Content - This is inferred by the supplied content + * @param content - The content to wrap + * @param level - The heading level + */ +declare function heading(content: Content, level: HeadingLevel.Three): `### ${Content}`; +/** + * A type that recursively traverses into arrays. + */ +type RecursiveArray = readonly (ItemType | RecursiveArray)[]; +/** + * Formats the elements in the array to an ordered list. + * + * @param list - The array of elements to list + * @param startNumber - The starting number for the list + */ +declare function orderedList(list: RecursiveArray, startNumber?: number): string; +/** + * Formats the elements in the array to an unordered list. + * + * @param list - The array of elements to list + */ +declare function unorderedList(list: RecursiveArray): string; +/** + * Formats the content into a subtext. + * + * @typeParam Content - This is inferred by the supplied content + * @param content - The content to wrap + */ +declare function subtext(content: Content): `-# ${Content}`; +/** + * Formats a date into a short date-time string. + * + * @param date - The date to format. Defaults to the current time + */ +declare function time(date?: Date): ``; +/** + * Formats a date given a format style. + * + * @typeParam Style - This is inferred by the supplied {@link TimestampStylesString} + * @param date - The date to format + * @param style - The style to use + */ +declare function time