refactor: remove deleted field (#7092)

This commit is contained in:
Antonio Román
2022-01-08 12:41:35 +01:00
committed by GitHub
parent 55e21f5366
commit cee7fd181c
20 changed files with 2 additions and 398 deletions

View File

@@ -1,9 +1,6 @@
'use strict';
const Action = require('./Action');
const { deletedChannels } = require('../../structures/Channel');
const DMChannel = require('../../structures/DMChannel');
const { deletedMessages } = require('../../structures/Message');
const { Events } = require('../../util/Constants');
class ChannelDeleteAction extends Action {
@@ -13,12 +10,6 @@ class ChannelDeleteAction extends Action {
if (channel) {
client.channels._remove(channel.id);
deletedChannels.add(channel);
if (channel.messages && !(channel instanceof DMChannel)) {
for (const message of channel.messages.cache.values()) {
deletedMessages.add(message);
}
}
/**
* Emitted whenever a channel is deleted.
* @event Client#channelDelete

View File

@@ -1,7 +1,6 @@
'use strict';
const Action = require('./Action');
const { deletedGuilds } = require('../../structures/Guild');
const { Events } = require('../../util/Constants');
class GuildDeleteAction extends Action {
@@ -31,7 +30,6 @@ class GuildDeleteAction extends Action {
// Delete guild
client.guilds.cache.delete(guild.id);
deletedGuilds.add(guild);
/**
* Emitted whenever a guild kicks the client or the guild is deleted/left.

View File

@@ -1,13 +1,11 @@
'use strict';
const Action = require('./Action');
const { deletedEmojis } = require('../../structures/Emoji');
const { Events } = require('../../util/Constants');
class GuildEmojiDeleteAction extends Action {
handle(emoji) {
emoji.guild.emojis.cache.delete(emoji.id);
deletedEmojis.add(emoji);
/**
* Emitted whenever a custom emoji is deleted in a guild.
* @event Client#emojiDelete

View File

@@ -1,7 +1,6 @@
'use strict';
const Action = require('./Action');
const { deletedGuildMembers } = require('../../structures/GuildMember');
const { Events, Status } = require('../../util/Constants');
class GuildMemberRemoveAction extends Action {
@@ -13,7 +12,6 @@ class GuildMemberRemoveAction extends Action {
member = this.getMember({ user: data.user }, guild);
guild.memberCount--;
if (member) {
deletedGuildMembers.add(member);
guild.members.cache.delete(member.id);
/**
* Emitted whenever a member leaves a guild, or is kicked.

View File

@@ -1,7 +1,6 @@
'use strict';
const Action = require('./Action');
const { deletedRoles } = require('../../structures/Role');
const { Events } = require('../../util/Constants');
class GuildRoleDeleteAction extends Action {
@@ -14,7 +13,6 @@ class GuildRoleDeleteAction extends Action {
role = guild.roles.cache.get(data.role_id);
if (role) {
guild.roles.cache.delete(data.role_id);
deletedRoles.add(role);
/**
* Emitted whenever a guild role is deleted.
* @event Client#roleDelete

View File

@@ -1,13 +1,11 @@
'use strict';
const Action = require('./Action');
const { deletedStickers } = require('../../structures/Sticker');
const { Events } = require('../../util/Constants');
class GuildStickerDeleteAction extends Action {
handle(sticker) {
sticker.guild.stickers.cache.delete(sticker.id);
deletedStickers.add(sticker);
/**
* Emitted whenever a custom sticker is deleted in a guild.
* @event Client#stickerDelete

View File

@@ -1,7 +1,6 @@
'use strict';
const Action = require('./Action');
const { deletedMessages } = require('../../structures/Message');
const { Events } = require('../../util/Constants');
class MessageDeleteAction extends Action {
@@ -15,7 +14,6 @@ class MessageDeleteAction extends Action {
message = this.getMessage(data, channel);
if (message) {
channel.messages.cache.delete(message.id);
deletedMessages.add(message);
/**
* Emitted whenever a message is deleted.
* @event Client#messageDelete

View File

@@ -2,7 +2,6 @@
const { Collection } = require('@discordjs/collection');
const Action = require('./Action');
const { deletedMessages } = require('../../structures/Message');
const { Events } = require('../../util/Constants');
class MessageDeleteBulkAction extends Action {
@@ -25,7 +24,6 @@ class MessageDeleteBulkAction extends Action {
false,
);
if (message) {
deletedMessages.add(message);
messages.set(message.id, message);
channel.messages.cache.delete(id);
}

View File

@@ -1,7 +1,6 @@
'use strict';
const Action = require('./Action');
const { deletedStageInstances } = require('../../structures/StageInstance');
const { Events } = require('../../util/Constants');
class StageInstanceDeleteAction extends Action {
@@ -13,7 +12,6 @@ class StageInstanceDeleteAction extends Action {
const stageInstance = channel.guild.stageInstances._add(data);
if (stageInstance) {
channel.guild.stageInstances.cache.delete(stageInstance.id);
deletedStageInstances.add(stageInstance);
/**
* Emitted whenever a stage instance is deleted.

View File

@@ -1,8 +1,6 @@
'use strict';
const Action = require('./Action');
const { deletedChannels } = require('../../structures/Channel');
const { deletedMessages } = require('../../structures/Message');
const { Events } = require('../../util/Constants');
class ThreadDeleteAction extends Action {
@@ -12,10 +10,6 @@ class ThreadDeleteAction extends Action {
if (thread) {
client.channels._remove(thread.id);
deletedChannels.add(thread);
for (const message of thread.messages.cache.values()) {
deletedMessages.add(message);
}
/**
* Emitted whenever a thread is deleted.

View File

@@ -1,6 +1,5 @@
'use strict';
const process = require('node:process');
const Base = require('./Base');
let CategoryChannel;
let DMChannel;
@@ -13,14 +12,6 @@ let VoiceChannel;
const { ChannelTypes, ThreadChannelTypes, VoiceBasedChannelTypes } = require('../util/Constants');
const SnowflakeUtil = require('../util/SnowflakeUtil');
/**
* @type {WeakSet<Channel>}
* @private
* @internal
*/
const deletedChannels = new WeakSet();
let deprecationEmittedForDeleted = false;
/**
* Represents any channel on Discord.
* @extends {Base}
@@ -66,36 +57,6 @@ class Channel extends Base {
return new Date(this.createdTimestamp);
}
/**
* Whether or not the structure has been deleted
* @type {boolean}
* @deprecated This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091
*/
get deleted() {
if (!deprecationEmittedForDeleted) {
deprecationEmittedForDeleted = true;
process.emitWarning(
'Channel#deleted is deprecated, see https://github.com/discordjs/discord.js/issues/7091.',
'DeprecationWarning',
);
}
return deletedChannels.has(this);
}
set deleted(value) {
if (!deprecationEmittedForDeleted) {
deprecationEmittedForDeleted = true;
process.emitWarning(
'Channel#deleted is deprecated, see https://github.com/discordjs/discord.js/issues/7091.',
'DeprecationWarning',
);
}
if (value) deletedChannels.add(this);
else deletedChannels.delete(this);
}
/**
* Whether this Channel is a partial
* <info>This is always false outside of DM channels.</info>
@@ -231,7 +192,6 @@ class Channel extends Base {
}
exports.Channel = Channel;
exports.deletedChannels = deletedChannels;
/**
* @external APIChannel

View File

@@ -1,17 +1,8 @@
'use strict';
const process = require('node:process');
const Base = require('./Base');
const SnowflakeUtil = require('../util/SnowflakeUtil');
/**
* @type {WeakSet<Emoji>}
* @private
* @internal
*/
const deletedEmojis = new WeakSet();
let deprecationEmittedForDeleted = false;
/**
* Represents raw emoji data from the API
* @typedef {APIEmoji} RawEmoji
@@ -46,36 +37,6 @@ class Emoji extends Base {
this.id = emoji.id;
}
/**
* Whether or not the structure has been deleted
* @type {boolean}
* @deprecated This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091
*/
get deleted() {
if (!deprecationEmittedForDeleted) {
deprecationEmittedForDeleted = true;
process.emitWarning(
'Emoji#deleted is deprecated, see https://github.com/discordjs/discord.js/issues/7091.',
'DeprecationWarning',
);
}
return deletedEmojis.has(this);
}
set deleted(value) {
if (!deprecationEmittedForDeleted) {
deprecationEmittedForDeleted = true;
process.emitWarning(
'Emoji#deleted is deprecated, see https://github.com/discordjs/discord.js/issues/7091.',
'DeprecationWarning',
);
}
if (value) deletedEmojis.add(this);
else deletedEmojis.delete(this);
}
/**
* The identifier of this emoji, used for message reactions
* @type {string}
@@ -140,7 +101,6 @@ class Emoji extends Base {
}
exports.Emoji = Emoji;
exports.deletedEmojis = deletedEmojis;
/**
* @external APIEmoji

View File

@@ -1,6 +1,5 @@
'use strict';
const process = require('node:process');
const { Collection } = require('@discordjs/collection');
const AnonymousGuild = require('./AnonymousGuild');
const GuildAuditLogs = require('./GuildAuditLogs');
@@ -36,15 +35,6 @@ const DataResolver = require('../util/DataResolver');
const SystemChannelFlags = require('../util/SystemChannelFlags');
const Util = require('../util/Util');
let deprecationEmittedForDeleted = false;
/**
* @type {WeakSet<Guild>}
* @private
* @internal
*/
const deletedGuilds = new WeakSet();
/**
* Represents a guild (or a server) on Discord.
* <info>It's recommended to see if a guild is available before performing operations or reading data from it. You can
@@ -134,36 +124,6 @@ class Guild extends AnonymousGuild {
this.shardId = data.shardId;
}
/**
* Whether or not the structure has been deleted
* @type {boolean}
* @deprecated This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091
*/
get deleted() {
if (!deprecationEmittedForDeleted) {
deprecationEmittedForDeleted = true;
process.emitWarning(
'Guild#deleted is deprecated, see https://github.com/discordjs/discord.js/issues/7091.',
'DeprecationWarning',
);
}
return deletedGuilds.has(this);
}
set deleted(value) {
if (!deprecationEmittedForDeleted) {
deprecationEmittedForDeleted = true;
process.emitWarning(
'Guild#deleted is deprecated, see https://github.com/discordjs/discord.js/issues/7091.',
'DeprecationWarning',
);
}
if (value) deletedGuilds.add(this);
else deletedGuilds.delete(this);
}
/**
* The Shard this Guild belongs to.
* @type {WebSocketShard}
@@ -1357,7 +1317,6 @@ class Guild extends AnonymousGuild {
}
exports.Guild = Guild;
exports.deletedGuilds = deletedGuilds;
/**
* @external APIGuild

View File

@@ -1,6 +1,5 @@
'use strict';
const process = require('node:process');
const Base = require('./Base');
const VoiceState = require('./VoiceState');
const TextBasedChannel = require('./interfaces/TextBasedChannel');
@@ -8,14 +7,6 @@ const { Error } = require('../errors');
const GuildMemberRoleManager = require('../managers/GuildMemberRoleManager');
const Permissions = require('../util/Permissions');
/**
* @type {WeakSet<GuildMember>}
* @private
* @internal
*/
const deletedGuildMembers = new WeakSet();
let deprecationEmittedForDeleted = false;
/**
* Represents a member of a guild on Discord.
* @implements {TextBasedChannel}
@@ -103,36 +94,6 @@ class GuildMember extends Base {
return clone;
}
/**
* Whether or not the structure has been deleted
* @type {boolean}
* @deprecated This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091
*/
get deleted() {
if (!deprecationEmittedForDeleted) {
deprecationEmittedForDeleted = true;
process.emitWarning(
'GuildMember#deleted is deprecated, see https://github.com/discordjs/discord.js/issues/7091.',
'DeprecationWarning',
);
}
return deletedGuildMembers.has(this);
}
set deleted(value) {
if (!deprecationEmittedForDeleted) {
deprecationEmittedForDeleted = true;
process.emitWarning(
'GuildMember#deleted is deprecated, see https://github.com/discordjs/discord.js/issues/7091.',
'DeprecationWarning',
);
}
if (value) deletedGuildMembers.add(this);
else deletedGuildMembers.delete(this);
}
/**
* Whether this GuildMember is a partial
* @type {boolean}
@@ -478,7 +439,6 @@ class GuildMember extends Base {
TextBasedChannel.applyToClass(GuildMember);
exports.GuildMember = GuildMember;
exports.deletedGuildMembers = deletedGuildMembers;
/**
* @external APIGuildMember

View File

@@ -1,6 +1,5 @@
'use strict';
const process = require('node:process');
const { Collection } = require('@discordjs/collection');
const Base = require('./Base');
const BaseMessageComponent = require('./BaseMessageComponent');
@@ -20,14 +19,6 @@ const Permissions = require('../util/Permissions');
const SnowflakeUtil = require('../util/SnowflakeUtil');
const Util = require('../util/Util');
/**
* @type {WeakSet<Message>}
* @private
* @internal
*/
const deletedMessages = new WeakSet();
let deprecationEmittedForDeleted = false;
/**
* Represents a message on Discord.
* @extends {Base}
@@ -351,36 +342,6 @@ class Message extends Base {
}
}
/**
* Whether or not the structure has been deleted
* @type {boolean}
* @deprecated This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091
*/
get deleted() {
if (!deprecationEmittedForDeleted) {
deprecationEmittedForDeleted = true;
process.emitWarning(
'Message#deleted is deprecated, see https://github.com/discordjs/discord.js/issues/7091.',
'DeprecationWarning',
);
}
return deletedMessages.has(this);
}
set deleted(value) {
if (!deprecationEmittedForDeleted) {
deprecationEmittedForDeleted = true;
process.emitWarning(
'Message#deleted is deprecated, see https://github.com/discordjs/discord.js/issues/7091.',
'DeprecationWarning',
);
}
if (value) deletedMessages.add(this);
else deletedMessages.delete(this);
}
/**
* The channel that the message was sent in
* @type {TextChannel|DMChannel|NewsChannel|ThreadChannel}
@@ -584,9 +545,7 @@ class Message extends Base {
* @readonly
*/
get editable() {
const precheck = Boolean(
this.author.id === this.client.user.id && !deletedMessages.has(this) && (!this.guild || this.channel?.viewable),
);
const precheck = Boolean(this.author.id === this.client.user.id && (!this.guild || this.channel?.viewable));
// Regardless of permissions thread messages cannot be edited if
// the thread is locked.
if (this.channel?.isThread()) {
@@ -601,9 +560,6 @@ class Message extends Base {
* @readonly
*/
get deletable() {
if (deletedMessages.has(this)) {
return false;
}
if (!this.guild) {
return this.author.id === this.client.user.id;
}
@@ -633,7 +589,6 @@ class Message extends Base {
const { channel } = this;
return Boolean(
!this.system &&
!deletedMessages.has(this) &&
(!this.guild ||
(channel?.viewable &&
channel?.permissionsFor(this.client.user)?.has(Permissions.FLAGS.MANAGE_MESSAGES, false))),
@@ -668,8 +623,7 @@ class Message extends Base {
!this.flags.has(MessageFlags.FLAGS.CROSSPOSTED) &&
this.type === 'DEFAULT' &&
channel.viewable &&
channel.permissionsFor(this.client.user)?.has(bitfield, false) &&
!deletedMessages.has(this),
channel.permissionsFor(this.client.user)?.has(bitfield, false),
);
}
@@ -983,4 +937,3 @@ class Message extends Base {
}
exports.Message = Message;
exports.deletedMessages = deletedMessages;

View File

@@ -7,14 +7,6 @@ const Permissions = require('../util/Permissions');
const SnowflakeUtil = require('../util/SnowflakeUtil');
const Util = require('../util/Util');
/**
* @type {WeakSet<Role>}
* @private
* @internal
*/
const deletedRoles = new WeakSet();
let deprecationEmittedForDeleted = false;
/**
* Represents a role on Discord.
* @extends {Base}
@@ -149,36 +141,6 @@ class Role extends Base {
return new Date(this.createdTimestamp);
}
/**
* Whether or not the role has been deleted
* @type {boolean}
* @deprecated This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091
*/
get deleted() {
if (!deprecationEmittedForDeleted) {
deprecationEmittedForDeleted = true;
process.emitWarning(
'Role#deleted is deprecated, see https://github.com/discordjs/discord.js/issues/7091.',
'DeprecationWarning',
);
}
return deletedRoles.has(this);
}
set deleted(value) {
if (!deprecationEmittedForDeleted) {
deprecationEmittedForDeleted = true;
process.emitWarning(
'Role#deleted is deprecated, see https://github.com/discordjs/discord.js/issues/7091.',
'DeprecationWarning',
);
}
if (value) deletedRoles.add(this);
else deletedRoles.delete(this);
}
/**
* The hexadecimal version of the role color, with a leading hashtag
* @type {string}
@@ -481,7 +443,6 @@ class Role extends Base {
}
exports.Role = Role;
exports.deletedRoles = deletedRoles;
/**
* @external APIRole

View File

@@ -1,18 +1,9 @@
'use strict';
const process = require('node:process');
const Base = require('./Base');
const { PrivacyLevels } = require('../util/Constants');
const SnowflakeUtil = require('../util/SnowflakeUtil');
/**
* @type {WeakSet<StageInstance>}
* @private
* @internal
*/
const deletedStageInstances = new WeakSet();
let deprecationEmittedForDeleted = false;
/**
* Represents a stage instance.
* @extends {Base}
@@ -83,36 +74,6 @@ class StageInstance extends Base {
return this.client.channels.resolve(this.channelId);
}
/**
* Whether or not the stage instance has been deleted
* @type {boolean}
* @deprecated This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091
*/
get deleted() {
if (!deprecationEmittedForDeleted) {
deprecationEmittedForDeleted = true;
process.emitWarning(
'StageInstance#deleted is deprecated, see https://github.com/discordjs/discord.js/issues/7091.',
'DeprecationWarning',
);
}
return deletedStageInstances.has(this);
}
set deleted(value) {
if (!deprecationEmittedForDeleted) {
deprecationEmittedForDeleted = true;
process.emitWarning(
'StageInstance#deleted is deprecated, see https://github.com/discordjs/discord.js/issues/7091.',
'DeprecationWarning',
);
}
if (value) deletedStageInstances.add(this);
else deletedStageInstances.delete(this);
}
/**
* The guild this stage instance belongs to
* @type {?Guild}
@@ -148,7 +109,6 @@ class StageInstance extends Base {
async delete() {
await this.guild.stageInstances.delete(this.channelId);
const clone = this._clone();
deletedStageInstances.add(clone);
return clone;
}
@@ -186,4 +146,3 @@ class StageInstance extends Base {
}
exports.StageInstance = StageInstance;
exports.deletedStageInstances = deletedStageInstances;

View File

@@ -1,18 +1,9 @@
'use strict';
const process = require('node:process');
const Base = require('./Base');
const { StickerFormatTypes, StickerTypes } = require('../util/Constants');
const SnowflakeUtil = require('../util/SnowflakeUtil');
/**
* @type {WeakSet<StageInstance>}
* @private
* @internal
*/
const deletedStickers = new WeakSet();
let deprecationEmittedForDeleted = false;
/**
* Represents a Sticker.
* @extends {Base}
@@ -146,36 +137,6 @@ class Sticker extends Base {
return new Date(this.createdTimestamp);
}
/**
* Whether or not the sticker has been deleted
* @type {boolean}
* @deprecated This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091
*/
get deleted() {
if (!deprecationEmittedForDeleted) {
deprecationEmittedForDeleted = true;
process.emitWarning(
'Sticker#deleted is deprecated, see https://github.com/discordjs/discord.js/issues/7091.',
'DeprecationWarning',
);
}
return deletedStickers.has(this);
}
set deleted(value) {
if (!deprecationEmittedForDeleted) {
deprecationEmittedForDeleted = true;
process.emitWarning(
'Sticker#deleted is deprecated, see https://github.com/discordjs/discord.js/issues/7091.',
'DeprecationWarning',
);
}
if (value) deletedStickers.add(this);
else deletedStickers.delete(this);
}
/**
* Whether this sticker is partial
* @type {boolean}
@@ -304,7 +265,6 @@ class Sticker extends Base {
}
exports.Sticker = Sticker;
exports.deletedStickers = deletedStickers;
/**
* @external APISticker

View File

@@ -518,8 +518,6 @@ export abstract class Channel extends Base {
public constructor(client: Client, data?: RawChannelData, immediatePatch?: boolean);
public readonly createdAt: Date;
public readonly createdTimestamp: number;
/** @deprecated This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091 */
public deleted: boolean;
public id: Snowflake;
public readonly partial: false;
public type: keyof typeof ChannelTypes;
@@ -855,8 +853,6 @@ export class Emoji extends Base {
public animated: boolean | null;
public readonly createdAt: Date | null;
public readonly createdTimestamp: number | null;
/** @deprecated This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091 */
public deleted: boolean;
public id: Snowflake | null;
public name: string | null;
public readonly identifier: string;
@@ -881,8 +877,6 @@ export class Guild extends AnonymousGuild {
public channels: GuildChannelManager;
public commands: GuildApplicationCommandManager;
public defaultMessageNotifications: DefaultMessageNotificationLevel | number;
/** @deprecated This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091 */
public deleted: boolean;
public discoverySplash: string | null;
public emojis: GuildEmojiManager;
public explicitContentFilter: ExplicitContentFilterLevel;
@@ -1083,8 +1077,6 @@ export class GuildMember extends PartialTextBasedChannel(Base) {
private constructor(client: Client, data: RawGuildMemberData, guild: Guild);
public avatar: string | null;
public readonly bannable: boolean;
/** @deprecated This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091 */
public deleted: boolean;
public readonly displayColor: number;
public readonly displayHexColor: HexColorString;
public readonly displayName: string;
@@ -1485,8 +1477,6 @@ export class Message<Cached extends boolean = boolean> extends Base {
public createdTimestamp: number;
public readonly crosspostable: boolean;
public readonly deletable: boolean;
/** @deprecated This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091 */
public deleted: boolean;
public readonly editable: boolean;
public readonly editedAt: Date | null;
public editedTimestamp: number | null;
@@ -1919,8 +1909,6 @@ export class Role extends Base {
public color: number;
public readonly createdAt: Date;
public readonly createdTimestamp: number;
/** @deprecated This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091 */
public deleted: boolean;
public readonly editable: boolean;
public guild: Guild;
public readonly hexColor: HexColorString;
@@ -2103,8 +2091,6 @@ export class StageChannel extends BaseGuildVoiceChannel {
export class StageInstance extends Base {
private constructor(client: Client, data: RawStageInstanceData, channel: StageChannel);
public id: Snowflake;
/** @deprecated This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091 */
public deleted: boolean;
public guildId: Snowflake;
public channelId: Snowflake;
public topic: string;
@@ -2121,8 +2107,6 @@ export class StageInstance extends Base {
export class Sticker extends Base {
private constructor(client: Client, data: RawStickerData);
/** @deprecated This will be removed in the next major version, see https://github.com/discordjs/discord.js/issues/7091 */
public deleted: boolean;
public readonly createdTimestamp: number;
public readonly createdAt: Date;
public available: boolean | null;

View File

@@ -87,8 +87,6 @@ import {
GuildAuditLogsEntry,
GuildAuditLogs,
StageInstance,
Sticker,
Emoji,
MessageActionRowComponent,
MessageSelectMenu,
PartialDMChannel,
@@ -926,25 +924,6 @@ client.on('messageReactionAdd', async reaction => {
expectType<string>(reaction.message.content);
});
// Test .deleted deprecations
declare const emoji: Emoji;
declare const message: Message;
declare const role: Role;
declare const stageInstance: StageInstance;
declare const sticker: Sticker;
expectDeprecated(dmChannel.deleted);
expectDeprecated(textChannel.deleted);
expectDeprecated(voiceChannel.deleted);
expectDeprecated(newsChannel.deleted);
expectDeprecated(threadChannel.deleted);
expectDeprecated(emoji.deleted);
expectDeprecated(guildMember.deleted);
expectDeprecated(guild.deleted);
expectDeprecated(message.deleted);
expectDeprecated(role.deleted);
expectDeprecated(stageInstance.deleted);
expectDeprecated(sticker.deleted);
// Test interactions
declare const interaction: Interaction;
declare const booleanValue: boolean;