text: 'use strict';
  
  const Util = require('./util/Util');
  
  module.exports = {
    // "Root" classes (starting points)
    BaseClient: require('./client/BaseClient'),
    Client: require('./client/Client'),
    Shard: require('./sharding/Shard'),
    ShardClientUtil: require('./sharding/ShardClientUtil'),
    ShardingManager: require('./sharding/ShardingManager'),
    WebhookClient: require('./client/WebhookClient'),
  
    // Utilities
    ActivityFlags: require('./util/ActivityFlags'),
    BitField: require('./util/BitField'),
    Collection: require('./util/Collection'),
    Constants: require('./util/Constants'),
    DataResolver: require('./util/DataResolver'),
    LimitedCollection: require('./util/LimitedCollection'),
    BaseManager: require('./managers/BaseManager'),
    DiscordAPIError: require('./rest/DiscordAPIError'),
    HTTPError: require('./rest/HTTPError'),
    MessageFlags: require('./util/MessageFlags'),
    Intents: require('./util/Intents'),
    Permissions: require('./util/Permissions'),
    Speaking: require('./util/Speaking'),
    Snowflake: require('./util/Snowflake'),
    SnowflakeUtil: require('./util/Snowflake'),
    Structures: require('./util/Structures'),
    SystemChannelFlags: require('./util/SystemChannelFlags'),
    Util: Util,
    version: require('../package.json').version,
  
    // Managers
    ChannelManager: require('./managers/ChannelManager'),
    GuildChannelManager: require('./managers/GuildChannelManager'),
    GuildEmojiManager: require('./managers/GuildEmojiManager'),
    GuildEmojiRoleManager: require('./managers/GuildEmojiRoleManager'),
    GuildMemberManager: require('./managers/GuildMemberManager'),
    GuildMemberRoleManager: require('./managers/GuildMemberRoleManager'),
    GuildManager: require('./managers/GuildManager'),
    ReactionUserManager: require('./managers/ReactionUserManager'),
    MessageManager: require('./managers/MessageManager'),
    PresenceManager: require('./managers/PresenceManager'),
    RoleManager: require('./managers/RoleManager'),
    UserManager: require('./managers/UserManager'),
  
    // Shortcuts to Util methods
    discordSort: Util.discordSort,
    escapeMarkdown: Util.escapeMarkdown,
    fetchRecommendedShards: Util.fetchRecommendedShards,
    resolveColor: Util.resolveColor,
    resolveString: Util.resolveString,
    splitMessage: Util.splitMessage,
  
    // Structures
    Base: require('./structures/Base'),
    Activity: require('./structures/Presence').Activity,
    APIMessage: require('./structures/APIMessage'),
    CategoryChannel: require('./structures/CategoryChannel'),
    Channel: require('./structures/Channel'),
    ClientApplication: require('./structures/ClientApplication'),
    get ClientUser() {
      // This is a getter so that it properly extends any custom User class
      return require('./structures/ClientUser');
    },
    Collector: require('./structures/interfaces/Collector'),
    DMChannel: require('./structures/DMChannel'),
    Emoji: require('./structures/Emoji'),
    Guild: require('./structures/Guild'),
    GuildAuditLogs: require('./structures/GuildAuditLogs'),
    GuildChannel: require('./structures/GuildChannel'),
    GuildEmoji: require('./structures/GuildEmoji'),
    GuildMember: require('./structures/GuildMember'),
    Integration: require('./structures/Integration'),
    Invite: require('./structures/Invite'),
    Message: require('./structures/Message'),
    MessageAttachment: require('./structures/MessageAttachment'),
    MessageCollector: require('./structures/MessageCollector'),
    MessageEmbed: require('./structures/MessageEmbed'),
    MessageMentions: require('./structures/MessageMentions'),
    MessageReaction: require('./structures/MessageReaction'),
    NewsChannel: require('./structures/NewsChannel'),
    PermissionOverwrites: require('./structures/PermissionOverwrites'),
    Presence: require('./structures/Presence').Presence,
    ClientPresence: require('./structures/ClientPresence'),
    ReactionCollector: require('./structures/ReactionCollector'),
    ReactionEmoji: require('./structures/ReactionEmoji'),
    RichPresenceAssets: require('./structures/Presence').RichPresenceAssets,
    Role: require('./structures/Role'),
    StoreChannel: require('./structures/StoreChannel'),
    Team: require('./structures/Team'),
    TeamMember: require('./structures/TeamMember'),
    TextChannel: require('./structures/TextChannel'),
    User: require('./structures/User'),
    VoiceChannel: require('./structures/VoiceChannel'),
    VoiceRegion: require('./structures/VoiceRegion'),
    VoiceState: require('./structures/VoiceState'),
    Webhook: require('./structures/Webhook'),
  
    WebSocket: require('./WebSocket'),
  };
  