Marcos Susaña 08b8df41fa
fix(types): Literal Types (#77)
* fix(Message): delete() params

* feat: fetches guilds items

* fix(types): literal types

* fix
2022-07-21 07:49:52 +00:00

1255 lines
47 KiB
TypeScript

/** https://discord.com/developers/docs/resources/user#user-object-premium-types */
export enum PremiumTypes {
None,
NitroClassic,
Nitro,
}
/** https://discord.com/developers/docs/resources/user#user-object-user-flags */
export enum UserFlags {
DiscordEmployee = 1 << 0,
PartneredServerOwner = 1 << 1,
HypeSquadEventsMember = 1 << 2,
BugHunterLevel1 = 1 << 3,
HouseBravery = 1 << 6,
HouseBrilliance = 1 << 7,
HouseBalance = 1 << 8,
EarlySupporter = 1 << 9,
TeamUser = 1 << 10,
BugHunterLevel2 = 1 << 14,
VerifiedBot = 1 << 16,
EarlyVerifiedBotDeveloper = 1 << 17,
DiscordCertifiedModerator = 1 << 18,
BotHttpInteractions = 1 << 19,
}
/** https://discord.com/developers/docs/resources/channel#channels-resource */
export enum ChannelFlags {
None,
Pinned = 1 << 1,
}
/** https://discord.com/developers/docs/resources/guild#integration-object-integration-expire-behaviors */
export enum IntegrationExpireBehaviors {
RemoveRole,
Kick,
}
/** https://discord.com/developers/docs/resources/user#connection-object-visibility-types */
export enum VisibilityTypes {
/** Invisible to everyone except the user themselves */
None,
/** Visible to everyone */
Everyone,
}
/** https://discord.com/developers/docs/topics/teams#data-models-membership-state-enum */
export enum TeamMembershipStates {
Invited = 1,
Accepted,
}
/** https://discord.com/developers/docs/topics/oauth2#application-application-flags */
export enum ApplicationFlags {
/** Intent required for bots in **100 or more servers** to receive [`presence_update` events](#DOCS_TOPICS_GATEWAY/presence-update) */
GatewayPresence = 1 << 12,
/** Intent required for bots in under 100 servers to receive [`presence_update` events](#DOCS_TOPICS_GATEWAY/presence-update), found in Bot Settings */
GatewayPresenceLimited = 1 << 13,
/** Intent required for bots in **100 or more servers** to receive member-related events like `guild_member_add`. See list of member-related events [under `GUILD_MEMBERS`](#DOCS_TOPICS_GATEWAY/list-of-intents) */
GatewayGuildMembers = 1 << 14,
/** Intent required for bots in under 100 servers to receive member-related events like `guild_member_add`, found in Bot Settings. See list of member-related events [under `GUILD_MEMBERS`](#DOCS_TOPICS_GATEWAY/list-of-intents) */
GatewayGuildMembersLimited = 1 << 15,
/** Indicates unusual growth of an app that prevents verification */
VerificationPendingGuildLimit = 1 << 16,
/** Indicates if an app is embedded within the Discord client (currently unavailable publicly) */
Embedded = 1 << 17,
/** Intent required for bots in **100 or more servers** to receive [message content](https://support-dev.discord.com/hc/en-us/articles/4404772028055) */
GatewayMessageCount = 1 << 18,
/** Intent required for bots in under 100 servers to receive [message content](https://support-dev.discord.com/hc/en-us/articles/4404772028055), found in Bot Settings */
GatewayMessageContentLimited = 1 << 19,
}
/** https://discord.com/developers/docs/interactions/message-components#component-types */
export enum MessageComponentTypes {
/** A container for other components */
ActionRow = 1,
/** A button object */
Button = 2,
/** A select menu for picking from choices */
SelectMenu = 3,
/** A text input object */
InputText = 4,
}
export enum TextStyles {
/** Intended for short single-line text */
Short = 1,
/** Intended for much longer inputs */
Paragraph = 2,
}
/** https://discord.com/developers/docs/interactions/message-components#buttons-button-styles */
export enum ButtonStyles {
/** A blurple button */
Primary = 1,
/** A grey button */
Secondary,
/** A green button */
Success,
/** A red button */
Danger,
/** A button that navigates to a URL */
Link,
}
/** https://discord.com/developers/docs/resources/channel#allowed-mentions-object-allowed-mention-types */
export enum AllowedMentionsTypes {
/** Controls role mentions */
RoleMentions = 'roles',
/** Controls user mentions */
UserMentions = 'users',
/** Controls @everyone and @here mentions */
EveryoneMentions = 'everyone',
}
/** https://discord.com/developers/docs/resources/webhook#webhook-object-webhook-types */
export enum WebhookTypes {
/** Incoming Webhooks can post messages to channels with a generated token */
Incoming = 1,
/** Channel Follower Webhooks are internal webhooks used with Channel Following to post new messages into channels */
ChannelFollower,
/** Application webhooks are webhooks used with Interactions */
Application,
}
/** https://discord.com/developers/docs/resources/channel#embed-object-embed-types */
export type EmbedTypes = 'rich' | 'image' | 'video' | 'gifv' | 'article' | 'link';
/** https://discord.com/developers/docs/resources/guild#guild-object-default-message-notification-level */
export enum DefaultMessageNotificationLevels {
/** Members will receive notifications for all messages by default */
AllMessages,
/** Members will receive notifications only for messages that @mention them by default */
OnlyMentions,
}
/** https://discord.com/developers/docs/resources/guild#guild-object-explicit-content-filter-level */
export enum ExplicitContentFilterLevels {
/** Media content will not be scanned */
Disabled,
/** Media content sent by members without roles will be scanned */
MembersWithoutRoles,
/** Media content sent by all members will be scanned */
AllMembers,
}
/** https://discord.com/developers/docs/resources/guild#guild-object-verification-level */
export enum VerificationLevels {
/** Unrestricted */
None,
/** Must have verified email on account */
Low,
/** Must be registered on Discord for longer than 5 minutes */
Medium,
/** Must be a member of the server for longer than 10 minutes */
High,
/** Must have a verified phone number */
VeryHigh,
}
/** https://discord.com/developers/docs/topics/permissions#role-object-role-structure */
export interface BaseRole {
/** Role name */
name: string;
/** Integer representation of hexadecimal color code */
color: number;
/** Position of this role */
position: number;
/** role unicode emoji */
unicodeEmoji?: string;
}
/** https://discord.com/developers/docs/resources/guild#guild-object-guild-features */
export enum GuildFeatures {
/** Guild has access to set an invite splash background */
InviteSplash = 'INVITE_SPLASH',
/** Guild has access to set 384 kbps bitrate in voice (previously VIP voice servers) */
VipRegions = 'VIP_REGIONS',
/** Guild has access to set a vanity URL */
VanityUrl = 'VANITY_URL',
/** Guild is verified */
Verified = 'VERIFIED',
/** Guild is partnered */
Partnered = 'PARTNERED',
/** Guild can enable welcome screen, Membership Screening, stage channels and discovery, and receives community updates */
Community = 'COMMUNITY',
/** Guild has access to use commerce features (i.e. create store channels) */
Commerce = 'COMMERCE',
/** Guild has access to create news channels */
News = 'NEWS',
/** Guild is able to be discovered in the directory */
Discoverable = 'DISCOVERABLE',
/** guild cannot be discoverable */
DiscoverableDisabled = 'DISCOVERABLE_DISABLED',
/** Guild is able to be featured in the directory */
Feature = 'FEATURABLE',
/** Guild has access to set an animated guild icon */
AnimatedIcon = 'ANIMATED_ICON',
/** Guild has access to set a guild banner image */
Banner = 'BANNER',
/** Guild has enabled the welcome screen */
WelcomeScreenEnabled = 'WELCOME_SCREEN_ENABLED',
/** Guild has enabled [Membership Screening](https://discord.com/developers/docs/resources/guild#membership-screening-object) */
MemberVerificationGateEnabled = 'MEMBER_VERIFICATION_GATE_ENABLED',
/** Guild can be previewed before joining via Membership Screening or the directory */
PreviewEnabled = 'PREVIEW_ENABLED',
/** Guild has enabled ticketed events */
TicketedEventsEnabled = 'TICKETED_EVENTS_ENABLED',
/** Guild has enabled monetization */
MonetizationEnabled = 'MONETIZATION_ENABLED',
/** Guild has increased custom sticker slots */
MoreStickers = 'MORE_STICKERS',
/** Guild has access to create private threads */
PrivateThreads = 'PRIVATE_THREADS',
/** Guild is able to set role icons */
RoleIcons = 'ROLE_ICONS',
/** Guild has set up auto moderation rules */
AutoModeration = 'AUTO_MODERATION',
}
/** https://discord.com/developers/docs/resources/guild#guild-object-mfa-level */
export enum MfaLevels {
/** Guild has no MFA/2FA requirement for moderation actions */
None,
/** Guild has a 2FA requirement for moderation actions */
Elevated,
}
/** https://discord.com/developers/docs/resources/guild#guild-object-system-channel-flags */
export enum SystemChannelFlags {
/** Suppress member join notifications */
SuppressJoinNotifications = 1 << 0,
/** Suppress server boost notifications */
SuppressPremiumSubscriptions = 1 << 1,
/** Suppress server setup tips */
SuppressGuildReminderNotifications = 1 << 2,
/** Hide member join sticker reply buttons */
SuppressJoinNotificationReplies = 1 << 3,
}
/** https://discord.com/developers/docs/resources/guild#guild-object-premium-tier */
export enum PremiumTiers {
/** Guild has not unlocked any Server Boost perks */
None,
/** Guild has unlocked Server Boost level 1 perks */
Tier1,
/** Guild has unlocked Server Boost level 2 perks */
Tier2,
/** Guild has unlocked Server Boost level 3 perks */
Tier3,
}
/** https://discord.com/developers/docs/resources/guild#guild-object-guild-nsfw-level */
export enum GuildNsfwLevel {
Default,
Explicit,
Safe,
AgeRestricted,
}
/** https://discord.com/developers/docs/resources/channel#channel-object-channel-types */
export enum ChannelTypes {
/** A text channel within a server */
GuildText,
/** A direct message between users */
DM,
/** A voice channel within a server */
GuildVoice,
/** A direct message between multiple users */
GroupDm,
/** An organizational category that contains up to 50 channels */
GuildCategory,
/** A channel that users can follow and crosspost into their own server */
GuildNews,
/** A temporary sub-channel within a GUILD_NEWS channel */
GuildNewsThread = 10,
/** A temporary sub-channel within a GUILD_TEXT channel */
GuildPublicThread,
/** A temporary sub-channel within a GUILD_TEXT channel that is only viewable by those invited and those with the MANAGE_THREADS permission */
GuildPrivateThread,
/** A voice channel for hosting events with an audience */
GuildStageVoice,
/** A channel in a hub containing the listed servers */
GuildDirectory,
/** A channel which can only contains threads */
GuildForum,
}
export enum OverwriteTypes {
Role,
Member,
}
export enum VideoQualityModes {
/** Discord chooses the quality for optimal performance */
Auto = 1,
/** 720p */
Full,
}
/** https://discord.com/developers/docs/topics/gateway#activity-object-activity-types */
export enum ActivityTypes {
Game,
Streaming,
Listening,
Watching,
Custom = 4,
Competing,
}
/** https://discord.com/developers/docs/resources/channel#message-object-message-types */
export enum MessageTypes {
Default,
RecipientAdd,
RecipientRemove,
Call,
ChannelNameChange,
ChannelIconChange,
ChannelPinnedMessage,
GuildMemberJoin,
UserPremiumGuildSubscription,
UserPremiumGuildSubscriptionTier1,
UserPremiumGuildSubscriptionTier2,
UserPremiumGuildSubscriptionTier3,
ChannelFollowAdd,
GuildDiscoveryDisqualified = 14,
GuildDiscoveryRequalified,
GuildDiscoveryGracePeriodInitialWarning,
GuildDiscoveryGracePeriodFinalWarning,
ThreadCreated,
Reply,
ChatInputCommand,
ThreadStarterMessage,
GuildInviteReminder,
ContextMenuCommand,
AutoModerationAction,
}
/** https://discord.com/developers/docs/resources/channel#message-object-message-activity-types */
export enum MessageActivityTypes {
Join = 1,
Spectate,
Listen,
JoinRequest,
}
/** https://discord.com/developers/docs/resources/sticker#sticker-object-sticker-types */
export enum StickerTypes {
/** an official sticker in a pack, part of Nitro or in a removed purchasable pack */
Standard = 1,
/** a sticker uploaded to a Boosted guild for the guild's members */
Guild,
}
/** https://discord.com/developers/docs/resources/sticker#sticker-object-sticker-format-types */
export enum StickerFormatTypes {
Png = 1,
APng,
Lottie,
}
/** https://discord.com/developers/docs/interactions/slash-commands#interaction-interactiontype */
export enum InteractionTypes {
Ping = 1,
ApplicationCommand = 2,
MessageComponent = 3,
ApplicationCommandAutocomplete = 4,
ModalSubmit = 5,
}
/** https://discord.com/developers/docs/interactions/slash-commands#applicationcommandoptiontype */
export enum ApplicationCommandOptionTypes {
SubCommand = 1,
SubCommandGroup,
String,
Integer,
Boolean,
User,
Channel,
Role,
Mentionable,
Number,
Attachment,
}
/** https://discord.com/developers/docs/resources/audit-log#audit-log-entry-object-audit-log-events */
export enum AuditLogEvents {
/** Server settings were updated */
GuildUpdate = 1,
/** Channel was created */
ChannelCreate = 10,
/** Channel settings were updated */
ChannelUpdate,
/** Channel was deleted */
ChannelDelete,
/** Permission overwrite was added to a channel */
ChannelOverwriteCreate,
/** Permission overwrite was updated for a channel */
ChannelOverwriteUpdate,
/** Permission overwrite was deleted from a channel */
ChannelOverwriteDelete,
/** Member was removed from server */
MemberKick = 20,
/** Members were pruned from server */
MemberPrune,
/** Member was banned from server */
MemberBanAdd,
/** Server ban was lifted for a member */
MemberBanRemove,
/** Member was updated in server */
MemberUpdate,
/** Member was added or removed from a role */
MemberRoleUpdate,
/** Member was moved to a different voice channel */
MemberMove,
/** Member was disconnected from a voice channel */
MemberDisconnect,
/** Bot user was added to server */
BotAdd,
/** Role was created */
RoleCreate = 30,
/** Role was edited */
RoleUpdate,
/** Role was deleted */
RoleDelete,
/** Server invite was created */
InviteCreate = 40,
/** Server invite was updated */
InviteUpdate,
/** Server invite was deleted */
InviteDelete,
/** Webhook was created */
WebhookCreate = 50,
/** Webhook properties or channel were updated */
WebhookUpdate,
/** Webhook was deleted */
WebhookDelete,
/** Emoji was created */
EmojiCreate = 60,
/** Emoji name was updated */
EmojiUpdate,
/** Emoji was deleted */
EmojiDelete,
/** Single message was deleted */
MessageDelete = 72,
/** Multiple messages were deleted */
MessageBulkDelete,
/** Messaged was pinned to a channel */
MessagePin,
/** Message was unpinned from a channel */
MessageUnpin,
/** App was added to server */
IntegrationCreate = 80,
/** App was updated (as an example, its scopes were updated) */
IntegrationUpdate,
/** App was removed from server */
IntegrationDelete,
/** Stage instance was created (stage channel becomes live) */
StageInstanceCreate,
/** Stage instace details were updated */
StageInstanceUpdate,
/** Stage instance was deleted (stage channel no longer live) */
StageInstanceDelete,
/** Sticker was created */
StickerCreate = 90,
/** Sticker details were updated */
StickerUpdate,
/** Sticker was deleted */
StickerDelete,
/** Event was created */
GuildScheduledEventCreate = 100,
/** Event was updated */
GuildScheduledEventUpdate,
/** Event was cancelled */
GuildScheduledEventDelete,
/** Thread was created in a channel */
ThreadCreate = 110,
/** Thread was updated */
ThreadUpdate,
/** Thread was deleted */
ThreadDelete,
/** Permissions were updated for a command */
ApplicationCommandPermissionUpdate = 121,
/** Auto moderation rule was created */
AutoModerationRuleCreate = 140,
/** Auto moderation rule was updated */
AutoModerationRuleUpdate,
/** Auto moderation rule was deleted */
AutoModerationRuleDelete,
/** Message was blocked by AutoMod according to a rule. */
AutoModerationBlockMessage,
}
export enum ScheduledEventPrivacyLevel {
/** the scheduled event is public and available in discovery. DISCORD DEVS DISABLED THIS! WILL ERROR IF USED! */
// Public = 1,
/** the scheduled event is only accessible to guild members */
GuildOnly = 2,
}
export enum ScheduledEventEntityType {
StageInstance = 1,
Voice,
External,
}
export enum ScheduledEventStatus {
Scheduled = 1,
Active,
Completed,
Canceled,
}
/** https://discord.com/developers/docs/resources/invite#invite-object-target-user-types */
export enum TargetTypes {
Stream = 1,
EmbeddedApplication,
}
export enum ApplicationCommandTypes {
/** A text-based command that shows up when a user types `/` */
ChatInput = 1,
/** A UI-based command that shows up when you right click or tap on a user */
User,
/** A UI-based command that shows up when you right click or tap on a message */
Message,
}
export enum ApplicationCommandPermissionTypes {
Role = 1,
User,
Channel,
}
/** https://discord.com/developers/docs/topics/gateway#activity-object-activity-flags */
export enum ActivityFlags {
Instance = 1 << 0,
Join = 1 << 1,
Spectate = 1 << 2,
JoinRequest = 1 << 3,
Sync = 1 << 4,
Play = 1 << 5,
PartyPrivacyFriends = 1 << 6,
PartyPrivacyVoiceChannel = 1 << 7,
Embedded = 1 << 8,
}
/** https://discord.com/developers/docs/topics/permissions#permissions-bitwise-permission-flags */
export enum BitwisePermissionFlags {
/** Allows creation of instant invites */
CREATE_INSTANT_INVITE = 0x0000000000000001,
/** Allows kicking members */
KICK_MEMBERS = 0x0000000000000002,
/** Allows banning members */
BAN_MEMBERS = 0x0000000000000004,
/** Allows all permissions and bypasses channel permission overwrites */
ADMINISTRATOR = 0x0000000000000008,
/** Allows management and editing of channels */
MANAGE_CHANNELS = 0x0000000000000010,
/** Allows management and editing of the guild */
MANAGE_GUILD = 0x0000000000000020,
/** Allows for the addition of reactions to messages */
ADD_REACTIONS = 0x0000000000000040,
/** Allows for viewing of audit logs */
VIEW_AUDIT_LOG = 0x0000000000000080,
/** Allows for using priority speaker in a voice channel */
PRIORITY_SPEAKER = 0x0000000000000100,
/** Allows the user to go live */
STREAM = 0x0000000000000200,
/** Allows guild members to view a channel, which includes reading messages in text channels and joining voice channels */
VIEW_CHANNEL = 0x0000000000000400,
/** Allows for sending messages in a channel. (does not allow sending messages in threads) */
SEND_MESSAGES = 0x0000000000000800,
/** Allows for sending of /tts messages */
SEND_TTS_MESSAGES = 0x0000000000001000,
/** Allows for deletion of other users messages */
MANAGE_MESSAGES = 0x0000000000002000,
/** Links sent by users with this permission will be auto-embedded */
EMBED_LINKS = 0x0000000000004000,
/** Allows for uploading images and files */
ATTACH_FILES = 0x0000000000008000,
/** Allows for reading of message history */
READ_MESSAGE_HISTORY = 0x0000000000010000,
/** Allows for using the @everyone tag to notify all users in a channel, and the @here tag to notify all online users in a channel */
MENTION_EVERYONE = 0x0000000000020000,
/** Allows the usage of custom emojis from other servers */
USE_EXTERNAL_EMOJIS = 0x0000000000040000,
/** Allows for viewing guild insights */
VIEW_GUILD_INSIGHTS = 0x0000000000080000,
/** Allows for joining of a voice channel */
CONNECT = 0x0000000000100000,
/** Allows for speaking in a voice channel */
SPEAK = 0x0000000000200000,
/** Allows for muting members in a voice channel */
MUTE_MEMBERS = 0x0000000000400000,
/** Allows for deafening of members in a voice channel */
DEAFEN_MEMBERS = 0x0000000000800000,
/** Allows for moving of members between voice channels */
MOVE_MEMBERS = 0x0000000001000000,
/** Allows for using voice-activity-detection in a voice channel */
USE_VAD = 0x0000000002000000,
/** Allows for modification of own nickname */
CHANGE_NICKNAME = 0x0000000004000000,
/** Allows for modification of other users nicknames */
MANAGE_NICKNAMES = 0x0000000008000000,
/** Allows management and editing of roles */
MANAGE_ROLES = 0x0000000010000000,
/** Allows management and editing of webhooks */
MANAGE_WEBHOOKS = 0x0000000020000000,
/** Allows management and editing of emojis */
MANAGE_EMOJIS = 0x0000000040000000,
/** Allows members to use application commands in text channels */
USE_SLASH_COMMANDS = 0x0000000080000000,
/** Allows for requesting to speak in stage channels. */
REQUEST_TO_SPEAK = 0x0000000100000000,
/** Allows for creating, editing, and deleting scheduled events */
MANAGE_EVENTS = 0x0000000200000000,
/** Allows for deleting and archiving threads, and viewing all private threads */
MANAGE_THREADS = 0x0000000400000000,
/** Allows for creating public and announcement threads */
CREATE_PUBLIC_THREADS = 0x0000000800000000,
/** Allows for creating private threads */
CREATE_PRIVATE_THREADS = 0x0000001000000000,
/** Allows the usage of custom stickers from other servers */
USE_EXTERNAL_STICKERS = 0x0000002000000000,
/** Allows for sending messages in threads */
SEND_MESSAGES_IN_THREADS = 0x0000004000000000,
/** Allows for launching activities (applications with the `EMBEDDED` flag) in a voice channel. */
USE_EMBEDDED_ACTIVITIES = 0x0000008000000000,
/** Allows for timing out users to prevent them from sending or reacting to messages in chat and threads, and from speaking in voice and stage channels */
MODERATE_MEMBERS = 0x0000010000000000,
}
export type PermissionStrings = keyof typeof BitwisePermissionFlags;
/** https://discord.com/developers/docs/topics/opcodes-and-status-codes#voice */
export enum VoiceOpcodes {
/** Begin a voice websocket connection. */
Identify,
/** Select the voice protocol. */
SelectProtocol,
/** Complete the websocket handshake. */
Ready,
/** Keep the websocket connection alive. */
Heartbeat,
/** Describe the session. */
SessionDescription,
/** Indicate which users are speaking. */
Speaking,
/** Sent to acknowledge a received client heartbeat. */
HeartbeatACK,
/** Resume a connection. */
Resume,
/** Time to wait between sending heartbeats in milliseconds. */
Hello,
/** Acknowledge a successful session resume. */
Resumed,
/** A client has disconnected from the voice channel */
ClientDisconnect = 13,
}
/** https://discord.com/developers/docs/topics/opcodes-and-status-codes#voice */
export enum VoiceCloseEventCodes {
/** You sent an invalid [opcode](https://discord.com/developers/docs/topics/opcodes-and-status-codes#voice-voice-opcodes). */
UnknownOpcode = 4001,
/** You sent a invalid payload in your [identifying](https://discord.com/developers/docs/topics/gateway#identify) to the Gateway. */
FailedToDecodePayload,
/** You sent a payload before [identifying](https://discord.com/developers/docs/topics/gateway#identify) with the Gateway. */
NotAuthenticated,
/** The token you sent in your [identify](https://discord.com/developers/docs/topics/gateway#identify) payload is incorrect. */
AuthenticationFailed,
/** You sent more than one [identify](https://discord.com/developers/docs/topics/gateway#identify) payload. Stahp. */
AlreadyAuthenticated,
/** Your session is no longer valid. */
SessionNoLongerValid,
/** Your session has timed out. */
SessionTimedOut = 4009,
/** We can't find the server you're trying to connect to. */
ServerNotFound = 4011,
/** We didn't recognize the [protocol](https://discord.com/developers/docs/topics/voice-connections#establishing-a-voice-udp-connection-example-select-protocol-payload) you sent. */
UnknownProtocol,
/** Channel was deleted, you were kicked, voice server changed, or the main gateway session was dropped. Should not reconnect. */
Disconnect = 4014,
/** The server crashed. Our bad! Try [resuming](https://discord.com/developers/docs/topics/voice-connections#resuming-voice-connection). */
VoiceServerCrashed,
/** We didn't recognize your [encryption](https://discord.com/developers/docs/topics/voice-connections#encrypting-and-sending-voice). */
UnknownEncryptionMode,
}
/** https://discord.com/developers/docs/topics/opcodes-and-status-codes#rpc */
export enum RpcErrorCodes {
/** An unknown error occurred. */
UnknownError = 1000,
/** You sent an invalid payload. */
InvalidPayload = 4000,
/** Invalid command name specified. */
InvalidCommand = 4002,
/** Invalid guild ID specified. */
InvalidGuild,
/** Invalid event name specified. */
InvalidEvent,
/** Invalid channel ID specified. */
InvalidChannel,
/** You lack permissions to access the given resource. */
InvalidPermissions,
/** An invalid OAuth2 application ID was used to authorize or authenticate with. */
InvalidClientId,
/** An invalid OAuth2 application origin was used to authorize or authenticate with. */
InvalidOrigin,
/** An invalid OAuth2 token was used to authorize or authenticate with. */
InvalidToken,
/** The specified user ID was invalid. */
InvalidUser,
/** A standard OAuth2 error occurred; check the data object for the OAuth2 error details. */
OAuth2Error = 5000,
/** An asynchronous `SELECT_TEXT_CHANNEL`/`SELECT_VOICE_CHANNEL` command timed out. */
SelectChannelTimedOut,
/** An asynchronous `GET_GUILD` command timed out. */
GetGuildTimedOut,
/** You tried to join a user to a voice channel but the user was already in one. */
SelectVoiceForceRequired,
/** You tried to capture more than one shortcut key at once. */
CaptureShortcutAlreadyListening,
}
/** https://discord.com/developers/docs/topics/opcodes-and-status-codes#rpc */
export enum RpcCloseEventCodes {
/** You connected to the RPC server with an invalid client ID. */
InvalidClientId = 4000,
/** You connected to the RPC server with an invalid origin. */
InvalidOrigin,
/** You are being rate limited. */
RateLimited,
/** The OAuth2 token associated with a connection was revoked, get a new one! */
TokenRevoked,
/** The RPC Server version specified in the connection string was not valid. */
InvalidVersion,
/** The encoding specified in the connection string was not valid. */
InvalidEncoding,
}
/** https://discord.com/developers/docs/topics/opcodes-and-status-codes#http */
export enum HTTPResponseCodes {
/** The request completed successfully. */
Ok = 200,
/** The entity was created successfully. */
Created,
/** The request completed successfully but returned no content. */
NoContent = 204,
/** The entity was not modified (no action was taken). */
NotModified = 304,
/** The request was improperly formatted, or the server couldn't understand it. */
BadRequest = 400,
/** The `Authorization` header was missing or invalid. */
Unauthorized,
/** The `Authorization` token you passed did not have permission to the resource. */
Forbidden = 403,
/** The resource at the location specified doesn't exist. */
NotFound,
/** The HTTP method used is not valid for the location specified. */
MethodNotAllowed,
/** You are being rate limited, see [Rate Limits](https://discord.com/developers/docs/topics/rate-limits). */
TooManyRequests = 429,
/** There was not a gateway available to process your request. Wait a bit and retry. */
GatewayUnavailable = 502,
}
/** https://discord.com/developers/docs/topics/opcodes-and-status-codes#opcodes-and-status-codes */
export enum GatewayCloseEventCodes {
/** A normal closure of the gateway.
* You may attempt to reconnect.
*/
NormalClosure = 1000,
/** We're not sure what went wrong. Try reconnecting? */
UnknownError = 4000,
/** You sent an invalid [Gateway opcode](https://discord.com/developers/docs/topics/opcodes-and-status-codes#gateway-gateway-opcodes) or an invalid payload for an opcode. Don't do that! */
UnknownOpcode,
/** You sent an invalid [payload](https://discord.com/developers/docs/topics/gateway#sending-payloads) to us. Don't do that! */
DecodeError,
/** You sent us a payload prior to [identifying](https://discord.com/developers/docs/topics/gateway#identify). */
NotAuthenticated,
/** The account token sent with your [identify payload](https://discord.com/developers/docs/topics/gateway#identify) is incorrect. */
AuthenticationFailed,
/** You sent more than one identify payload. Don't do that! */
AlreadyAuthenticated,
/** The sequence sent when [resuming](https://discord.com/developers/docs/topics/gateway#resume) the session was invalid. Reconnect and start a new session. */
InvalidSeq = 4007,
/** Woah nelly! You're sending payloads to us too quickly. Slow it down! You will be disconnected on receiving this. */
RateLimited,
/** Your session timed out. Reconnect and start a new one. */
SessionTimedOut,
/** You sent us an invalid [shard when identifying](https://discord.com/developers/docs/topics/gateway#sharding). */
InvalidShard,
/** The session would have handled too many guilds - you are required to [shard](https://discord.com/developers/docs/topics/gateway#sharding) your connection in order to connect. */
ShardingRequired,
/** You sent an invalid version for the gateway. */
InvalidApiVersion,
/** You sent an invalid intent for a [Gateway Intent](https://discord.com/developers/docs/topics/gateway#gateway-intents). You may have incorrectly calculated the bitwise value. */
InvalidIntents,
/** You sent a disallowed intent for a [Gateway Intent](https://discord.com/developers/docs/topics/gateway#gateway-intents). You may have tried to specify an intent that you [have not enabled or are not approved for](https://discord.com/developers/docs/topics/gateway#privileged-intents). */
DisallowedIntents,
}
/** https://discord.com/developers/docs/resources/invite#invite-object-invite-target-types */
export enum InviteTargetTypes {
Stream = 1,
EmbeddedApplication,
}
/** https://discord.com/developers/docs/topics/opcodes-and-status-codes#gateway-gateway-opcodes */
export enum GatewayOpcodes {
/** An event was dispatched. */
Dispatch,
/** Fired periodically by the client to keep the connection alive. */
Heartbeat,
/** Starts a new session during the initial handshake. */
Identify,
/** Update the client's presence. */
PresenceUpdate,
/** Used to join/leave or move between voice channels. */
VoiceStateUpdate,
/** Resume a previous session that was disconnected. */
Resume = 6,
/** You should attempt to reconnect and resume immediately. */
Reconnect,
/** Request information about offline guild members in a large guild. */
RequestGuildMembers,
/** The session has been invalidated. You should reconnect and identify/resume accordingly. */
InvalidSession,
/** Sent immediately after connecting, contains the `heartbeat_interval` to use. */
Hello,
/** Sent in response to receiving a heartbeat to acknowledge that it has been received. */
HeartbeatACK,
}
export type GatewayDispatchEventNames =
| 'READY'
| 'CHANNEL_CREATE'
| 'CHANNEL_DELETE'
| 'CHANNEL_PINS_UPDATE'
| 'CHANNEL_UPDATE'
| 'GUILD_BAN_ADD'
| 'GUILD_BAN_REMOVE'
| 'GUILD_CREATE'
| 'GUILD_DELETE'
| 'GUILD_EMOJIS_UPDATE'
| 'GUILD_INTEGRATIONS_UPDATE'
| 'GUILD_MEMBER_ADD'
| 'GUILD_MEMBER_REMOVE'
| 'GUILD_MEMBER_UPDATE'
| 'GUILD_MEMBERS_CHUNK'
| 'GUILD_ROLE_CREATE'
| 'GUILD_ROLE_DELETE'
| 'GUILD_ROLE_UPDATE'
| 'GUILD_UPDATE'
| 'GUILD_SCHEDULED_EVENT_CREATE'
| 'GUILD_SCHEDULED_EVENT_DELETE'
| 'GUILD_SCHEDULED_EVENT_UPDATE'
| 'GUILD_SCHEDULED_EVENT_USER_ADD'
| 'GUILD_SCHEDULED_EVENT_USER_REMOVE'
| 'INTERACTION_CREATE'
| 'INVITE_CREATE'
| 'INVITE_DELETE'
| 'MESSAGE_CREATE'
| 'MESSAGE_DELETE_BULK'
| 'MESSAGE_DELETE'
| 'MESSAGE_REACTION_ADD'
| 'MESSAGE_REACTION_REMOVE_ALL'
| 'MESSAGE_REACTION_REMOVE_EMOJI'
| 'MESSAGE_REACTION_REMOVE'
| 'MESSAGE_UPDATE'
| 'PRESENCE_UPDATE'
| 'TYPING_START'
| 'USER_UPDATE'
| 'VOICE_SERVER_UPDATE'
| 'VOICE_STATE_UPDATE'
| 'WEBHOOKS_UPDATE'
| 'INTEGRATION_CREATE'
| 'INTEGRATION_UPDATE'
| 'INTEGRATION_DELETE'
| 'STAGE_INSTANCE_CREATE'
| 'STAGE_INSTANCE_UPDATE'
| 'STAGE_INSTANCE_DELETE'
| 'THREAD_CREATE'
| 'THREAD_UPDATE'
| 'THREAD_DELETE'
| 'THREAD_LIST_SYNC'
| 'THREAD_MEMBERS_UPDATE';
export type GatewayEventNames =
| GatewayDispatchEventNames
| 'READY'
| 'RESUMED'
// THIS IS A CUSTOM DD EVENT NOT A DISCORD EVENT
| 'GUILD_LOADED_DD';
/** https://discord.com/developers/docs/topics/gateway#list-of-intents */
export enum GatewayIntents {
/**
* - GUILD_CREATE
* - GUILD_DELETE
* - GUILD_ROLE_CREATE
* - GUILD_ROLE_UPDATE
* - GUILD_ROLE_DELETE
* - CHANNEL_CREATE
* - CHANNEL_UPDATE
* - CHANNEL_DELETE
* - CHANNEL_PINS_UPDATE
* - THREAD_CREATE
* - THREAD_UPDATE
* - THREAD_DELETE
* - THREAD_LIST_SYNC
* - THREAD_MEMBER_UPDATE
* - THREAD_MEMBERS_UPDATE
* - STAGE_INSTANCE_CREATE
* - STAGE_INSTANCE_UPDATE
* - STAGE_INSTANCE_DELETE
*/
Guilds = 1 << 0,
/**
* - GUILD_MEMBER_ADD
* - GUILD_MEMBER_UPDATE
* - GUILD_MEMBER_REMOVE
*/
GuildMembers = 1 << 1,
/**
* - GUILD_BAN_ADD
* - GUILD_BAN_REMOVE
*/
GuildBans = 1 << 2,
/**
* - GUILD_EMOJIS_UPDATE
*/
GuildEmojis = 1 << 3,
/**
* - GUILD_INTEGRATIONS_UPDATE
* - INTEGRATION_CREATE
* - INTEGRATION_UPDATE
* - INTEGRATION_DELETE
*/
GuildIntegrations = 1 << 4,
/** Enables the following events:
* - WEBHOOKS_UPDATE
*/
GuildWebhooks = 1 << 5,
/**
* - INVITE_CREATE
* - INVITE_DELETE
*/
GuildInvites = 1 << 6,
/**
* - VOICE_STATE_UPDATE
*/
GuildVoiceStates = 1 << 7,
/**
* - PRESENCE_UPDATE
*/
GuildPresences = 1 << 8,
/**
* - MESSAGE_CREATE
* - MESSAGE_UPDATE
* - MESSAGE_DELETE
*/
GuildMessages = 1 << 9,
/**
* - MESSAGE_REACTION_ADD
* - MESSAGE_REACTION_REMOVE
* - MESSAGE_REACTION_REMOVE_ALL
* - MESSAGE_REACTION_REMOVE_EMOJI
*/
GuildMessageReactions = 1 << 10,
/**
* - TYPING_START
*/
GuildMessageTyping = 1 << 11,
/**
* - CHANNEL_CREATE
* - MESSAGE_CREATE
* - MESSAGE_UPDATE
* - MESSAGE_DELETE
* - CHANNEL_PINS_UPDATE
*/
DirectMessages = 1 << 12,
/**
* - MESSAGE_REACTION_ADD
* - MESSAGE_REACTION_REMOVE
* - MESSAGE_REACTION_REMOVE_ALL
* - MESSAGE_REACTION_REMOVE_EMOJI
*/
DirectMessageReactions = 1 << 13,
/**
* - TYPING_START
*/
DirectMessageTyping = 1 << 14,
/**
* This intent will add `content` values to all message objects.
*/
MessageContent = 1 << 15,
/**
* - GUILD_SCHEDULED_EVENT_CREATE
* - GUILD_SCHEDULED_EVENT_UPDATE
* - GUILD_SCHEDULED_EVENT_DELETE
* - GUILD_SCHEDULED_EVENT_USER_ADD this is experimental and unstable.
* - GUILD_SCHEDULED_EVENT_USER_REMOVE this is experimental and unstable.
*/
GuildScheduledEvents = (1 << 16),
/**
* - AUTO_MODERATION_RULE_CREATE
* - AUTO_MODERATION_RULE_UPDATE
* - AUTO_MODERATION_RULE_DELETE
*/
AutoModerationConfiguration = (1 << 20),
/**
* - AUTO_MODERATION_ACTION_EXECUTION
*/
AutoModerationExecution = (1 << 21),
}
// ALIASES JUST FOR BETTER UX IN THIS CASE
/** https://discord.com/developers/docs/topics/gateway#list-of-intents */
export const Intents = GatewayIntents;
export type Intents = GatewayIntents;
/** https://discord.com/developers/docs/interactions/slash-commands#interaction-response-interactionresponsetype */
export enum InteractionResponseTypes {
/** ACK a `Ping` */
Pong = 1,
/** Respond to an interaction with a message */
ChannelMessageWithSource = 4,
/** ACK an interaction and edit a response later, the user sees a loading state */
DeferredChannelMessageWithSource = 5,
/** For components, ACK an interaction and edit the original message later; the user does not see a loading state */
DeferredUpdateMessage = 6,
/** For components, edit the message the component was attached to */
UpdateMessage = 7,
/** For Application Command Options, send an autocomplete result */
ApplicationCommandAutocompleteResult = 8,
/** For Command or Component interactions, send a Modal response */
Modal = 9,
}
export enum Errors {
// Bot Role errors
BOTS_HIGHEST_ROLE_TOO_LOW = 'BOTS_HIGHEST_ROLE_TOO_LOW',
// Channel Errors
CHANNEL_NOT_FOUND = 'CHANNEL_NOT_FOUND',
CHANNEL_NOT_IN_GUILD = 'CHANNEL_NOT_IN_GUILD',
CHANNEL_NOT_TEXT_BASED = 'CHANNEL_NOT_TEXT_BASED',
CHANNEL_NOT_STAGE_VOICE = 'CHANNEL_NOT_STAGE_VOICE',
MESSAGE_MAX_LENGTH = 'MESSAGE_MAX_LENGTH',
RULES_CHANNEL_CANNOT_BE_DELETED = 'RULES_CHANNEL_CANNOT_BE_DELETED',
UPDATES_CHANNEL_CANNOT_BE_DELETED = 'UPDATES_CHANNEL_CANNOT_BE_DELETED',
INVALID_TOPIC_LENGTH = 'INVALID_TOPIC_LENGTH',
// Guild Errors
GUILD_NOT_DISCOVERABLE = 'GUILD_NOT_DISCOVERABLE',
GUILD_WIDGET_NOT_ENABLED = 'GUILD_WIDGET_NOT_ENABLED',
GUILD_NOT_FOUND = 'GUILD_NOT_FOUND',
MEMBER_NOT_FOUND = 'MEMBER_NOT_FOUND',
MEMBER_NOT_IN_VOICE_CHANNEL = 'MEMBER_NOT_IN_VOICE_CHANNEL',
MEMBER_SEARCH_LIMIT_TOO_HIGH = 'MEMBER_SEARCH_LIMIT_TOO_HIGH',
MEMBER_SEARCH_LIMIT_TOO_LOW = 'MEMBER_SEARCH_LIMIT_TOO_LOW',
PRUNE_MAX_DAYS = 'PRUNE_MAX_DAYS',
ROLE_NOT_FOUND = 'ROLE_NOT_FOUND',
// Thread errors
INVALID_THREAD_PARENT_CHANNEL_TYPE = 'INVALID_THREAD_PARENT_CHANNEL_TYPE',
GUILD_NEWS_CHANNEL_ONLY_SUPPORT_PUBLIC_THREADS = 'GUILD_NEWS_CHANNEL_ONLY_SUPPORT_PUBLIC_THREADS',
NOT_A_THREAD_CHANNEL = 'NOT_A_THREAD_CHANNEL',
MISSING_MANAGE_THREADS_AND_NOT_MEMBER = 'MISSING_MANAGE_THREADS_AND_NOT_MEMBER',
CANNOT_GET_MEMBERS_OF_AN_UNJOINED_PRIVATE_THREAD = 'CANNOT_GET_MEMBERS_OF_AN_UNJOINED_PRIVATE_THREAD',
HAVE_TO_BE_THE_CREATOR_OF_THE_THREAD_OR_HAVE_MANAGE_THREADS_TO_REMOVE_MEMBERS =
'HAVE_TO_BE_THE_CREATOR_OF_THE_THREAD_OR_HAVE_MANAGE_THREADS_TO_REMOVE_MEMBERS',
// Message Get Errors
INVALID_GET_MESSAGES_LIMIT = 'INVALID_GET_MESSAGES_LIMIT',
// Message Delete Errors
DELETE_MESSAGES_MIN = 'DELETE_MESSAGES_MIN',
PRUNE_MIN_DAYS = 'PRUNE_MIN_DAYS',
// Interaction Errors
INVALID_SLASH_DESCRIPTION = 'INVALID_SLASH_DESCRIPTION',
INVALID_SLASH_NAME = 'INVALID_SLASH_NAME',
INVALID_SLASH_OPTIONS = 'INVALID_SLASH_OPTIONS',
INVALID_SLASH_OPTIONS_CHOICES = 'INVALID_SLASH_OPTIONS_CHOICES',
TOO_MANY_SLASH_OPTIONS = 'TOO_MANY_SLASH_OPTIONS',
INVALID_SLASH_OPTION_CHOICE_NAME = 'INVALID_SLASH_OPTION_CHOICE_NAME',
INVALID_SLASH_OPTIONS_CHOICE_VALUE_TYPE = 'INVALID_SLASH_OPTIONS_CHOICE_VALUE_TYPE',
TOO_MANY_SLASH_OPTION_CHOICES = 'TOO_MANY_SLASH_OPTION_CHOICES',
ONLY_STRING_OR_INTEGER_OPTIONS_CAN_HAVE_CHOICES = 'ONLY_STRING_OR_INTEGER_OPTIONS_CAN_HAVE_CHOICES',
INVALID_SLASH_OPTION_NAME = 'INVALID_SLASH_OPTION_NAME',
INVALID_SLASH_OPTION_DESCRIPTION = 'INVALID_SLASH_OPTION_DESCRIPTION',
INVALID_CONTEXT_MENU_COMMAND_NAME = 'INVALID_CONTEXT_MENU_COMMAND_NAME',
INVALID_CONTEXT_MENU_COMMAND_DESCRIPTION = 'INVALID_CONTEXT_MENU_COMMAND_DESCRIPTION',
// Webhook Errors
INVALID_WEBHOOK_NAME = 'INVALID_WEBHOOK_NAME',
INVALID_WEBHOOK_OPTIONS = 'INVALID_WEBHOOK_OPTIONS',
// Permission Errors
MISSING_ADD_REACTIONS = 'MISSING_ADD_REACTIONS',
MISSING_ADMINISTRATOR = 'MISSING_ADMINISTRATOR',
MISSING_ATTACH_FILES = 'MISSING_ATTACH_FILES',
MISSING_BAN_MEMBERS = 'MISSING_BAN_MEMBERS',
MISSING_CHANGE_NICKNAME = 'MISSING_CHANGE_NICKNAME',
MISSING_CONNECT = 'MISSING_CONNECT',
MISSING_CREATE_INSTANT_INVITE = 'MISSING_CREATE_INSTANT_INVITE',
MISSING_DEAFEN_MEMBERS = 'MISSING_DEAFEN_MEMBERS',
MISSING_EMBED_LINKS = 'MISSING_EMBED_LINKS',
MISSING_INTENT_GUILD_MEMBERS = 'MISSING_INTENT_GUILD_MEMBERS',
MISSING_KICK_MEMBERS = 'MISSING_KICK_MEMBERS',
MISSING_MANAGE_CHANNELS = 'MISSING_MANAGE_CHANNELS',
MISSING_MANAGE_EMOJIS = 'MISSING_MANAGE_EMOJIS',
MISSING_MANAGE_GUILD = 'MISSING_MANAGE_GUILD',
MISSING_MANAGE_MESSAGES = 'MISSING_MANAGE_MESSAGES',
MISSING_MANAGE_NICKNAMES = 'MISSING_MANAGE_NICKNAMES',
MISSING_MANAGE_ROLES = 'MISSING_MANAGE_ROLES',
MISSING_MANAGE_WEBHOOKS = 'MISSING_MANAGE_WEBHOOKS',
MISSING_MENTION_EVERYONE = 'MISSING_MENTION_EVERYONE',
MISSING_MOVE_MEMBERS = 'MISSING_MOVE_MEMBERS',
MISSING_MUTE_MEMBERS = 'MISSING_MUTE_MEMBERS',
MISSING_PRIORITY_SPEAKER = 'MISSING_PRIORITY_SPEAKER',
MISSING_READ_MESSAGE_HISTORY = 'MISSING_READ_MESSAGE_HISTORY',
MISSING_SEND_MESSAGES = 'MISSING_SEND_MESSAGES',
MISSING_SEND_TTS_MESSAGES = 'MISSING_SEND_TTS_MESSAGES',
MISSING_SPEAK = 'MISSING_SPEAK',
MISSING_STREAM = 'MISSING_STREAM',
MISSING_USE_VAD = 'MISSING_USE_VAD',
MISSING_USE_EXTERNAL_EMOJIS = 'MISSING_USE_EXTERNAL_EMOJIS',
MISSING_VIEW_AUDIT_LOG = 'MISSING_VIEW_AUDIT_LOG',
MISSING_VIEW_CHANNEL = 'MISSING_VIEW_CHANNEL',
MISSING_VIEW_GUILD_INSIGHTS = 'MISSING_VIEW_GUILD_INSIGHTS',
// User Errors
NICKNAMES_MAX_LENGTH = 'NICKNAMES_MAX_LENGTH',
USERNAME_INVALID_CHARACTER = 'USERNAME_INVALID_CHARACTER',
USERNAME_INVALID_USERNAME = 'USERNAME_INVALID_USERNAME',
USERNAME_MAX_LENGTH = 'USERNAME_MAX_LENGTH',
USERNAME_MIN_LENGTH = 'USERNAME_MIN_LENGTH',
NONCE_TOO_LONG = 'NONCE_TOO_LONG',
INVITE_MAX_AGE_INVALID = 'INVITE_MAX_AGE_INVALID',
INVITE_MAX_USES_INVALID = 'INVITE_MAX_USES_INVALID',
// API Errors
RATE_LIMIT_RETRY_MAXED = 'RATE_LIMIT_RETRY_MAXED',
REQUEST_CLIENT_ERROR = 'REQUEST_CLIENT_ERROR',
REQUEST_SERVER_ERROR = 'REQUEST_SERVER_ERROR',
REQUEST_UNKNOWN_ERROR = 'REQUEST_UNKNOWN_ERROR',
// Component Errors
TOO_MANY_COMPONENTS = 'TOO_MANY_COMPONENTS',
TOO_MANY_ACTION_ROWS = 'TOO_MANY_ACTION_ROWS',
LINK_BUTTON_CANNOT_HAVE_CUSTOM_ID = 'LINK_BUTTON_CANNOT_HAVE_CUSTOM_ID',
COMPONENT_LABEL_TOO_BIG = 'COMPONENT_LABEL_TOO_BIG',
COMPONENT_CUSTOM_ID_TOO_BIG = 'COMPONENT_CUSTOM_ID_TOO_BIG',
BUTTON_REQUIRES_CUSTOM_ID = 'BUTTON_REQUIRES_CUSTOM_ID',
COMPONENT_SELECT_MUST_BE_ALONE = 'COMPONENT_SELECT_MUST_BE_ALONE',
COMPONENT_PLACEHOLDER_TOO_BIG = 'COMPONENT_PLACEHOLDER_TOO_BIG',
COMPONENT_SELECT_MIN_VALUE_TOO_LOW = 'COMPONENT_SELECT_MIN_VALUE_TOO_LOW',
COMPONENT_SELECT_MIN_VALUE_TOO_MANY = 'COMPONENT_SELECT_MIN_VALUE_TOO_MANY',
COMPONENT_SELECT_MAX_VALUE_TOO_LOW = 'COMPONENT_SELECT_MAX_VALUE_TOO_LOW',
COMPONENT_SELECT_MAX_VALUE_TOO_MANY = 'COMPONENT_SELECT_MAX_VALUE_TOO_MANY',
COMPONENT_SELECT_OPTIONS_TOO_LOW = 'COMPONENT_SELECT_OPTIONS_TOO_LOW',
COMPONENT_SELECT_OPTIONS_TOO_MANY = 'COMPONENT_SELECT_OPTIONS_TOO_MANY',
SELECT_OPTION_LABEL_TOO_BIG = 'SELECT_OPTION_LABEL_TOO_BIG',
SELECT_OPTION_VALUE_TOO_BIG = 'SELECT_OPTION_VALUE_TOO_BIG',
SELECT_OPTION_TOO_MANY_DEFAULTS = 'SELECT_OPTION_TOO_MANY_DEFAULTS',
COMPONENT_SELECT_MIN_HIGHER_THAN_MAX = 'COMPONENT_SELECT_MIN_HIGHER_THAN_MAX',
CANNOT_ADD_USER_TO_ARCHIVED_THREADS = 'CANNOT_ADD_USER_TO_ARCHIVED_THREADS',
CANNOT_LEAVE_ARCHIVED_THREAD = 'CANNOT_LEAVE_ARCHIVED_THREAD',
CANNOT_REMOVE_FROM_ARCHIVED_THREAD = 'CANNOT_REMOVE_FROM_ARCHIVED_THREAD',
YOU_CAN_NOT_DM_THE_BOT_ITSELF = 'YOU_CAN_NOT_DM_THE_BOT_ITSELF',
}
export enum Locales {
Danish = 'da',
German = 'de',
EnglishUk = 'en-GB',
EnglishUs = 'en-US',
Spanish = 'es-ES',
French = 'fr',
Croatian = 'hr',
Italian = 'it',
Lithuanian = 'lt',
Hungarian = 'hu',
Dutch = 'nl',
Norwegian = 'no',
Polish = 'pl',
PortugueseBrazilian = 'pt-BR',
RomanianRomania = 'ro',
Finnish = 'fi',
Swedish = 'sv-SE',
Vietnamese = 'vi',
Turkish = 'tr',
Czech = 'cs',
Greek = 'el',
Bulgarian = 'bg',
Russian = 'ru',
Ukrainian = 'uk',
Hindi = 'hi',
Thai = 'th',
ChineseChina = 'zh-CN',
Japanese = 'ja',
ChineseTaiwan = 'zh-TW',
Korean = 'ko',
}
export type Localization = Partial<Record<Locales, string>>;
export interface FileContent {
/** The file blob */
blob: Blob;
/** The name of the file */
name: string;
}
export interface GatewayBot {
/** The WSS URL that can be used for connecting to the gateway */
url: string;
/** The recommended number of shards to use when connecting */
shards: number;
/** Information on the current session start limit */
sessionStartLimit: {
/** The total number of session starts the current user is allowed */
total: number;
/** The remaining number of session starts the current user is allowed */
remaining: number;
/** The number of milliseconds after which the limit resets */
resetAfter: number;
/** The number of identify requests allowed per 5 seconds */
maxConcurrency: number;
};
}
// UTILS
export type AtLeastOne<T, U = { [K in keyof T]: Pick<T, K> }> = Partial<T> & U[keyof U];
export type MakeRequired<T, K extends keyof T> = T & { [P in K]-?: T[P] };
// THANK YOU YUI FOR SHARING THIS!
export type CamelCase<S extends string> = S extends `${infer P1}_${infer P2}${infer P3}`
? `${Lowercase<P1>}${Uppercase<P2>}${CamelCase<P3>}`
: Lowercase<S>;
export type Camelize<T> = {
// deno-lint-ignore ban-types
[K in keyof T as CamelCase<string & K>]: T[K] extends Array<infer U> ? U extends {} ? Array<Camelize<U>>
: T[K]
: // deno-lint-ignore ban-types
T[K] extends {} ? Camelize<T[K]>
: never;
};
export type PickPartial<T, K extends keyof T> =
& {
[P in keyof T]?: T[P] | undefined;
}
& { [P in K]: T[P] };
// deno-lint-ignore no-explicit-any
export type OmitFirstFnArg<F> = F extends (x: any, ...args: infer P) => infer R ? (...args: P) => R : never;