import type { BushClient, BushCommandUtil, BushGuild, BushGuildMember, BushGuildTextBasedChannel, BushTextBasedChannels, BushUser } from '#lib'; import { Message, type If, type Partialize } from 'discord.js'; import type { RawMessageData } from 'discord.js/typings/rawDataTypes'; export type PartialBushMessage = Partialize< BushMessage, 'type' | 'system' | 'pinned' | 'tts', 'content' | 'cleanContent' | 'author' >; export class BushMessage extends Message { public declare readonly client: BushClient; public declare util: BushCommandUtil>; public declare readonly guild: BushGuild | null; public declare readonly member: BushGuildMember | null; public declare author: BushUser; public declare readonly channel: If; public constructor(client: BushClient, data: RawMessageData) { super(client, data); } public override fetch(force?: boolean): Promise { return super.fetch(force) as Promise; } }