import { createRequire } from "node:module";
import type * as DiscordApiTypes from "discord-api-types/v10";

const requireDiscordApiTypes = createRequire(import.meta.url);
const discordApiTypes = requireDiscordApiTypes("discord-api-types/v10") as typeof DiscordApiTypes;

export default discordApiTypes;
export const {
  APIApplicationCommandPermissionsConstant,
  APIVersion,
  ActivityFlags,
  ActivityLocationKind,
  ActivityPlatform,
  ActivityType,
  AllowedMentionsTypes,
  ApplicationCommandOptionType,
  ApplicationCommandPermissionType,
  ApplicationCommandType,
  ApplicationFlags,
  ApplicationIntegrationType,
  ApplicationRoleConnectionMetadataType,
  ApplicationWebhookEventStatus,
  ApplicationWebhookEventType,
  ApplicationWebhookType,
  AttachmentFlags,
  AuditLogEvent,
  AuditLogOptionsType,
  AutoModerationActionType,
  AutoModerationRuleEventType,
  AutoModerationRuleKeywordPresetType,
  AutoModerationRuleTriggerType,
  BaseThemeType,
  ButtonStyle,
  CDNRoutes,
  CannotSendMessagesToThisUserErrorCodes,
  ChannelFlags,
  ChannelType,
  ComponentType,
  ConnectionService,
  ConnectionVisibility,
  EmbedFlags,
  EmbedMediaFlags,
  EmbedType,
  EntitlementOwnerType,
  EntitlementType,
  EntryPointCommandHandlerType,
  FormattingPatterns,
  ForumLayoutType,
  GatewayCloseCodes,
  GatewayDispatchEvents,
  GatewayIntentBits,
  GatewayOpcodes,
  GatewayVersion,
  GuildDefaultMessageNotifications,
  GuildExplicitContentFilter,
  GuildFeature,
  GuildHubType,
  GuildMFALevel,
  GuildMemberFlags,
  GuildNSFWLevel,
  GuildOnboardingMode,
  GuildOnboardingPromptType,
  GuildPremiumTier,
  GuildScheduledEventEntityType,
  GuildScheduledEventPrivacyLevel,
  GuildScheduledEventRecurrenceRuleFrequency,
  GuildScheduledEventRecurrenceRuleMonth,
  GuildScheduledEventRecurrenceRuleWeekday,
  GuildScheduledEventStatus,
  GuildSystemChannelFlags,
  GuildVerificationLevel,
  GuildWidgetStyle,
  ImageFormat,
  IntegrationExpireBehavior,
  InteractionContextType,
  InteractionResponseType,
  InteractionType,
  InviteFlags,
  InviteTargetType,
  InviteType,
  Locale,
  MembershipScreeningFieldType,
  MessageActivityType,
  MessageFlags,
  MessageReferenceType,
  MessageSearchAuthorType,
  MessageSearchEmbedType,
  MessageSearchHasType,
  MessageSearchSortMode,
  MessageType,
  NameplatePalette,
  OAuth2Routes,
  OAuth2Scopes,
  OverwriteType,
  PermissionFlagsBits,
  PollLayoutType,
  PresenceUpdateStatus,
  RESTJSONErrorCodes,
  RPCCloseEventCodes,
  RPCCommands,
  RPCDeviceType,
  RPCErrorCodes,
  RPCEvents,
  RPCVersion,
  RPCVoiceSettingsModeType,
  RPCVoiceShortcutKeyComboKeyType,
  ReactionType,
  RelationshipType,
  RoleFlags,
  RouteBases,
  Routes,
  SKUFlags,
  SKUType,
  SelectMenuDefaultValueType,
  SeparatorSpacingSize,
  SortOrderType,
  StageInstancePrivacyLevel,
  StatusDisplayType,
  StickerFormatType,
  StickerPackApplicationId,
  StickerType,
  SubscriptionStatus,
  TeamMemberMembershipState,
  TeamMemberRole,
  TextInputStyle,
  ThreadAutoArchiveDuration,
  ThreadMemberFlags,
  UnfurledMediaItemFlags,
  UnfurledMediaItemLoadingState,
  UserFlags,
  UserPremiumType,
  Utils,
  VideoQualityMode,
  VoiceChannelEffectSendAnimationType,
  VoiceConnectionStates,
  WebhookType,
  urlSafeCharacters,
} = discordApiTypes;
