diff --git a/packages/discord.js/src/structures/GuildPreview.js b/packages/discord.js/src/structures/GuildPreview.js index 01654744e..f4fc4ed65 100644 --- a/packages/discord.js/src/structures/GuildPreview.js +++ b/packages/discord.js/src/structures/GuildPreview.js @@ -115,6 +115,7 @@ class GuildPreview extends Base { new Collection(), ); } + /** * The timestamp this guild was created at * @type {number} diff --git a/packages/discord.js/src/structures/Sticker.js b/packages/discord.js/src/structures/Sticker.js index cba2f5f86..95222940a 100644 --- a/packages/discord.js/src/structures/Sticker.js +++ b/packages/discord.js/src/structures/Sticker.js @@ -160,6 +160,7 @@ class Sticker extends Base { * If the sticker's format is {@link StickerFormatType.Lottie}, it returns * the URL of the Lottie JSON file. * @type {string} + * @readonly */ get url() { return this.client.rest.cdn.sticker(this.id, this.format === StickerFormatType.Lottie ? 'json' : 'png'); diff --git a/packages/discord.js/typings/index.d.ts b/packages/discord.js/typings/index.d.ts index da825ecdd..d945efb83 100644 --- a/packages/discord.js/typings/index.d.ts +++ b/packages/discord.js/typings/index.d.ts @@ -46,7 +46,6 @@ import { APIPartialEmoji, APIPartialGuild, APIRole, - APIAttachment, APISelectMenuComponent, APITemplateSerializedSourceGuild, APIUser, @@ -166,7 +165,7 @@ export class Activity { public applicationId: Snowflake | null; public assets: RichPresenceAssets | null; public buttons: string[]; - public readonly createdAt: Date; + public get createdAt(): Date; public createdTimestamp: number; public details: string | null; public emoji: Emoji | null; @@ -188,6 +187,7 @@ export class Activity { public type: ActivityType; public url: string | null; public equals(activity: Activity): boolean; + public toString(): string; } export type ActivityFlagsString = keyof typeof ActivityFlags; @@ -226,8 +226,8 @@ export abstract class AnonymousGuild extends BaseGuild { export abstract class Application extends Base { protected constructor(client: Client, data: RawApplicationData); - public readonly createdAt: Date; - public readonly createdTimestamp: number; + public get createdAt(): Date; + public get createdTimestamp(): number; public description: string | null; public icon: string | null; public id: Snowflake; @@ -241,13 +241,13 @@ export abstract class Application extends Base { export class ApplicationCommand extends Base { private constructor(client: Client, data: RawApplicationCommandData, guild?: Guild, guildId?: Snowflake); public applicationId: Snowflake; - public readonly createdAt: Date; - public readonly createdTimestamp: number; + public get createdAt(): Date; + public get createdTimestamp(): number; public defaultPermission: boolean; public description: string; public guild: Guild | null; public guildId: Snowflake | null; - public readonly manager: ApplicationCommandManager; + public get manager(): ApplicationCommandManager; public id: Snowflake; public name: string; public options: ApplicationCommandOption[]; @@ -330,7 +330,7 @@ export interface InteractionResponseFields } export abstract class CommandInteraction extends Interaction { - public readonly command: ApplicationCommand | ApplicationCommand<{ guild: GuildResolvable }> | null; + public get command(): ApplicationCommand | ApplicationCommand<{ guild: GuildResolvable }> | null; public options: Omit< CommandInteractionOptionResolver, | 'getMessage' @@ -376,15 +376,15 @@ export abstract class CommandInteraction e export abstract class BaseGuild extends Base { protected constructor(client: Client, data: RawBaseGuildData); - public readonly createdAt: Date; - public readonly createdTimestamp: number; + public get createdAt(): Date; + public get createdTimestamp(): number; public features: GuildFeature[]; public icon: string | null; public id: Snowflake; public name: string; - public readonly nameAcronym: string; - public readonly partnered: boolean; - public readonly verified: boolean; + public get nameAcronym(): string; + public get partnered(): boolean; + public get verified(): boolean; public fetch(): Promise; public iconURL(options?: ImageURLOptions): string | null; public toString(): string; @@ -393,8 +393,8 @@ export abstract class BaseGuild extends Base { export class BaseGuildEmoji extends Emoji { protected constructor(client: Client, data: RawGuildEmojiData, guild: Guild | GuildPreview); public available: boolean | null; - public readonly createdAt: Date; - public readonly createdTimestamp: number; + public get createdAt(): Date; + public get createdTimestamp(): number; public guild: Guild | GuildPreview; public id: Snowflake; public managed: boolean | null; @@ -424,9 +424,9 @@ export class BaseGuildTextChannel extends TextBasedChannelMixin(GuildChannel) { export class BaseGuildVoiceChannel extends GuildChannel { protected constructor(guild: Guild, data?: RawGuildChannelData); - public readonly members: Collection; - public readonly full: boolean; - public readonly joinable: boolean; + public get members(): Collection; + public get full(): boolean; + public get joinable(): boolean; public rtcRegion: string | null; public bitrate: number; public userLimit: number; @@ -458,7 +458,7 @@ export class BitField { export class ButtonInteraction extends MessageComponentInteraction { private constructor(client: Client, data: RawMessageButtonInteractionData); - public readonly component: CacheTypeReducer< + public get component(): CacheTypeReducer< Cached, ButtonComponent, APIButtonComponent, @@ -526,7 +526,7 @@ export type CategoryChannelType = Exclude< >; export class CategoryChannel extends GuildChannel { - public readonly children: CategoryChannelChildManager; + public get children(): CategoryChannelChildManager; public type: ChannelType.GuildCategory; } @@ -534,12 +534,12 @@ export type CategoryChannelResolvable = Snowflake | CategoryChannel; export abstract class Channel extends Base { public constructor(client: Client, data?: RawChannelData, immediatePatch?: boolean); - public readonly createdAt: Date | null; - public readonly createdTimestamp: number | null; + public get createdAt(): Date | null; + public get createdTimestamp(): number | null; public id: Snowflake; - public readonly partial: false; + public get partial(): false; public type: ChannelType; - public readonly url: string; + public get url(): string; public delete(): Promise; public fetch(force?: boolean): Promise; public isText(): this is TextChannel; @@ -568,15 +568,15 @@ export class Client extends BaseClient { public application: If; public channels: ChannelManager; - public readonly emojis: BaseGuildEmojiManager; + public get emojis(): BaseGuildEmojiManager; public guilds: GuildManager; public options: ClientOptions; - public readonly readyAt: If; + public get readyAt(): If; public readyTimestamp: If; public sweepers: Sweepers; public shard: ShardClientUtil | null; public token: If; - public uptime: If; + public get uptime(): If; public user: If; public users: UserManager; public voice: ClientVoiceManager; @@ -628,7 +628,7 @@ export class ClientApplication extends Application { public cover: string | null; public flags: Readonly; public owner: User | Team | null; - public readonly partial: boolean; + public get partial(): boolean; public rpcOrigins: string[]; public fetch(): Promise; } @@ -642,7 +642,7 @@ export class ClientPresence extends Presence { export class ClientUser extends User { public mfaEnabled: boolean; - public readonly presence: ClientPresence; + public get presence(): ClientPresence; public verified: boolean; public edit(data: ClientUserEditData): Promise; public setActivity(options?: ActivityOptions): ClientPresence; @@ -685,9 +685,9 @@ export abstract class Collector extends EventEmi public readonly client: Client; public collected: Collection; public ended: boolean; - public abstract readonly endReason: string | null; + public abstract get endReason(): string | null; public filter: CollectorFilter<[V, ...F]>; - public readonly next: Promise; + public get next(): Promise; public options: CollectorOptions<[V, ...F]>; public checkEnd(): boolean; public handleCollect(...args: unknown[]): Promise; @@ -721,7 +721,7 @@ export class ChatInputCommandInteraction e } export class AutocompleteInteraction extends Interaction { - public readonly command: ApplicationCommand | ApplicationCommand<{ guild: GuildResolvable }> | null; + public get command(): ApplicationCommand | ApplicationCommand<{ guild: GuildResolvable }> | null; public channelId: Snowflake; public commandId: Snowflake; public commandName: string; @@ -884,12 +884,12 @@ export class DMChannel extends TextBasedChannelMixin(Channel, ['bulkDelete']) { export class Emoji extends Base { protected constructor(client: Client, emoji: RawEmojiData); public animated: boolean | null; - public readonly createdAt: Date | null; - public readonly createdTimestamp: number | null; + public get createdAt(): Date | null; + public get createdTimestamp(): number | null; public id: Snowflake | null; public name: string | null; - public readonly identifier: string; - public readonly url: string | null; + public get identifier(): string; + public get url(): string | null; public toJSON(): unknown; public toString(): string; } @@ -899,7 +899,7 @@ export class Guild extends AnonymousGuild { private _sortedRoles(): Collection; private _sortedChannels(channel: NonThreadGuildBasedChannel): Collection; - public readonly afkChannel: VoiceChannel | null; + public get afkChannel(): VoiceChannel | null; public afkChannelId: Snowflake | null; public afkTimeout: number; public applicationId: Snowflake | null; @@ -914,12 +914,12 @@ export class Guild extends AnonymousGuild { public emojis: GuildEmojiManager; public explicitContentFilter: GuildExplicitContentFilter; public invites: GuildInviteManager; - public readonly joinedAt: Date; + public get joinedAt(): Date; public joinedTimestamp: number; public large: boolean; public maximumMembers: number | null; public maximumPresences: number | null; - public readonly me: GuildMember | null; + public get me(): GuildMember | null; public memberCount: number; public members: GuildMemberManager; public mfaLevel: GuildMFALevel; @@ -928,26 +928,26 @@ export class Guild extends AnonymousGuild { public premiumProgressBarEnabled: boolean; public premiumTier: GuildPremiumTier; public presences: PresenceManager; - public readonly publicUpdatesChannel: TextChannel | null; + public get publicUpdatesChannel(): TextChannel | null; public publicUpdatesChannelId: Snowflake | null; public roles: RoleManager; - public readonly rulesChannel: TextChannel | null; + public get rulesChannel(): TextChannel | null; public rulesChannelId: Snowflake | null; public scheduledEvents: GuildScheduledEventManager; - public readonly shard: WebSocketShard; + public get shard(): WebSocketShard; public shardId: number; public stageInstances: StageInstanceManager; public stickers: GuildStickerManager; - public readonly systemChannel: TextChannel | null; + public get systemChannel(): TextChannel | null; public systemChannelFlags: Readonly; public systemChannelId: Snowflake | null; public vanityURLUses: number | null; - public readonly voiceAdapterCreator: InternalDiscordGatewayAdapterCreator; - public readonly voiceStates: VoiceStateManager; - public readonly widgetChannel: TextChannel | null; + public get voiceAdapterCreator(): InternalDiscordGatewayAdapterCreator; + public voiceStates: VoiceStateManager; + public get widgetChannel(): TextChannel | null; public widgetChannelId: Snowflake | null; public widgetEnabled: boolean | null; - public readonly maximumBitrate: number; + public get maximumBitrate(): number; public createTemplate(name: string, description?: string): Promise; public delete(): Promise; public discoverySplashURL(options?: ImageURLOptions): string | null; @@ -1022,8 +1022,8 @@ export class GuildAuditLogsEntry< public action: TAction; public actionType: TActionType; public changes: AuditLogChange[] | null; - public readonly createdAt: Date; - public readonly createdTimestamp: number; + public get createdAt(): Date; + public get createdTimestamp(): number; public executor: User | null; public extra: TAction extends keyof GuildAuditLogsEntryExtraField ? GuildAuditLogsEntryExtraField[TAction] : null; public id: Snowflake; @@ -1039,7 +1039,7 @@ export class GuildBan extends Base { private constructor(client: Client, data: RawGuildBanData, guild: Guild); public guild: Guild; public user: User; - public readonly partial: boolean; + public get partial(): boolean; public reason?: string | null; public fetch(force?: boolean): Promise; } @@ -1048,23 +1048,22 @@ export abstract class GuildChannel extends Channel { public constructor(guild: Guild, data?: RawGuildChannelData, client?: Client, immediatePatch?: boolean); private memberPermissions(member: GuildMember, checkAdmin: boolean): Readonly; private rolePermissions(role: Role, checkAdmin: boolean): Readonly; - public readonly createdAt: Date; - public readonly createdTimestamp: number; - public readonly calculatedPosition: number; - public readonly deletable: boolean; + public get createdAt(): Date; + public get createdTimestamp(): number; + public get deletable(): boolean; public guild: Guild; public guildId: Snowflake; - public readonly manageable: boolean; - public readonly members: Collection; + public get manageable(): boolean; + public get members(): Collection; public name: string; - public readonly parent: CategoryChannel | null; + public get parent(): CategoryChannel | null; public parentId: Snowflake | null; public permissionOverwrites: PermissionOverwriteManager; - public readonly permissionsLocked: boolean | null; - public readonly position: number; + public get permissionsLocked(): boolean | null; + public get position(): number; public rawPosition: number; public type: Exclude; - public readonly viewable: boolean; + public get viewable(): boolean; public clone(options?: GuildChannelCloneOptions): Promise; public delete(reason?: string): Promise; public edit(data: ChannelData, reason?: string): Promise; @@ -1085,11 +1084,11 @@ export class GuildEmoji extends BaseGuildEmoji { private constructor(client: Client, data: RawGuildEmojiData, guild: Guild); private _roles: Snowflake[]; - public readonly deletable: boolean; + public get deletable(): boolean; public guild: Guild; public author: User | null; - public readonly roles: GuildEmojiRoleManager; - public readonly url: string; + public get roles(): GuildEmojiRoleManager; + public get url(): string; public delete(reason?: string): Promise; public edit(data: GuildEmojiEditData, reason?: string): Promise; public equals(other: GuildEmoji | unknown): boolean; @@ -1100,29 +1099,29 @@ export class GuildEmoji extends BaseGuildEmoji { export class GuildMember extends PartialTextBasedChannel(Base) { private constructor(client: Client, data: RawGuildMemberData, guild: Guild); public avatar: string | null; - public readonly bannable: boolean; - public readonly displayColor: number; - public readonly displayHexColor: HexColorString; - public readonly displayName: string; + public get bannable(): boolean; + public get displayColor(): number; + public get displayHexColor(): HexColorString; + public get displayName(): string; public guild: Guild; - public readonly id: Snowflake; + public get id(): Snowflake; public pending: boolean; - public readonly communicationDisabledUntil: Date | null; + public get communicationDisabledUntil(): Date | null; public communicationDisabledUntilTimestamp: number | null; - public readonly joinedAt: Date | null; + public get joinedAt(): Date | null; public joinedTimestamp: number | null; - public readonly kickable: boolean; - public readonly manageable: boolean; - public readonly moderatable: boolean; + public get kickable(): boolean; + public get manageable(): boolean; + public get moderatable(): boolean; public nickname: string | null; - public readonly partial: false; - public readonly permissions: Readonly; - public readonly premiumSince: Date | null; + public get partial(): false; + public get permissions(): Readonly; + public get premiumSince(): Date | null; public premiumSinceTimestamp: number | null; - public readonly presence: Presence | null; - public readonly roles: GuildMemberRoleManager; + public get presence(): Presence | null; + public get roles(): GuildMemberRoleManager; public user: User; - public readonly voice: VoiceState; + public get voice(): VoiceState; public avatarURL(options?: ImageURLOptions): string | null; public ban(options?: BanOptions): Promise; public disableCommunicationUntil(timeout: DateResolvable | null, reason?: string): Promise; @@ -1148,8 +1147,8 @@ export class GuildPreview extends Base { private constructor(client: Client, data: RawGuildPreviewData); public approximateMemberCount: number; public approximatePresenceCount: number; - public readonly createdAt: Date; - public readonly createdTimestamp: number; + public get createdAt(): Date; + public get createdTimestamp(): number; public description: string | null; public discoverySplash: string | null; public emojis: Collection; @@ -1184,14 +1183,14 @@ export class GuildScheduledEvent): string | null; public createInviteURL(options?: CreateGuildScheduledEventInviteURLOptions): Promise; public edit>( @@ -1221,16 +1220,16 @@ export class GuildTemplate extends Base { private constructor(client: Client, data: RawGuildTemplateData); public createdTimestamp: number; public updatedTimestamp: number; - public readonly url: string; + public get url(): string; public code: string; public name: string; public description: string | null; public usageCount: number; public creator: User; public creatorId: Snowflake; - public readonly createdAt: Date; - public readonly updatedAt: Date; - public guild: Guild | null; + public get createdAt(): Date; + public get updatedAt(): Date; + public get guild(): Guild | null; public guildId: Snowflake; public serializedGuild: APITemplateSerializedSourceGuild; public unSynced: boolean | null; @@ -1259,8 +1258,8 @@ export class Integration extends Base { public name: string; public role: Role | null; public enableEmoticons: boolean | null; - public readonly roles: Collection; - public readonly syncedAt: Date | null; + public get roles(): Collection; + public get syncedAt(): Date | null; public syncedTimestamp: number | null; public syncing: boolean | null; public type: IntegrationType; @@ -1310,7 +1309,7 @@ export class Interaction extends Base { private readonly _cacheType: Cached; protected constructor(client: Client, data: RawInteractionData); public applicationId: Snowflake; - public readonly channel: CacheTypeReducer< + public get channel(): CacheTypeReducer< Cached, GuildTextBasedChannel | null, GuildTextBasedChannel | null, @@ -1318,9 +1317,9 @@ export class Interaction extends Base { TextBasedChannel | null >; public channelId: Snowflake | null; - public readonly createdAt: Date; - public readonly createdTimestamp: number; - public readonly guild: CacheTypeReducer; + public get createdAt(): Date; + public get createdTimestamp(): number; + public get guild(): CacheTypeReducer; public guildId: CacheTypeReducer; public id: Snowflake; public member: CacheTypeReducer; @@ -1354,7 +1353,7 @@ export class InteractionCollector extends Collector; public toJSON(): unknown; @@ -1420,8 +1419,8 @@ export class InviteStageInstance extends Base { public topic: string; public participantCount: number; public speakerCount: number; - public readonly channel: StageChannel | null; - public readonly guild: Guild | null; + public get channel(): StageChannel | null; + public get guild(): Guild | null; } export class InviteGuild extends AnonymousGuild { @@ -1475,38 +1474,38 @@ export class Message extends Base { public applicationId: Snowflake | null; public attachments: Collection; public author: User; - public readonly channel: If; + public get channel(): If; public channelId: Snowflake; - public readonly cleanContent: string; + public get cleanContent(): string; public components: ActionRow[]; public content: string; - public readonly createdAt: Date; + public get createdAt(): Date; public createdTimestamp: number; - public readonly crosspostable: boolean; - public readonly deletable: boolean; - public readonly editable: boolean; - public readonly editedAt: Date | null; + public get crosspostable(): boolean; + public get deletable(): boolean; + public get editable(): boolean; + public get editedAt(): Date | null; public editedTimestamp: number | null; public embeds: Embed[]; public groupActivityApplication: ClientApplication | null; public guildId: If; - public readonly guild: If; - public readonly hasThread: boolean; + public get guild(): If; + public get hasThread(): boolean; public id: Snowflake; public interaction: MessageInteraction | null; - public readonly member: GuildMember | null; + public get member(): GuildMember | null; public mentions: MessageMentions; public nonce: string | number | null; - public readonly partial: false; - public readonly pinnable: boolean; + public get partial(): false; + public get pinnable(): boolean; public pinned: boolean; public reactions: ReactionManager; public stickers: Collection; public system: boolean; - public readonly thread: ThreadChannel | null; + public get thread(): ThreadChannel | null; public tts: boolean; public type: MessageType; - public readonly url: string; + public get url(): string; public webhookId: Snowflake | null; public flags: Readonly; public reference: MessageReference | null; @@ -1550,7 +1549,7 @@ export class MessageAttachment { public name: string | null; public proxyURL: string; public size: number; - public readonly spoiler: boolean; + public get spoiler(): boolean; public url: string; public width: number | null; public setDescription(description: string): this; @@ -1566,7 +1565,7 @@ export class MessageCollector extends Collector { private _handleGuildDeletion(guild: Guild): void; public channel: TextBasedChannel; - public readonly endReason: string | null; + public get endReason(): string | null; public options: MessageCollectorOptions; public received: number; @@ -1576,7 +1575,7 @@ export class MessageCollector extends Collector { export class MessageComponentInteraction extends Interaction { protected constructor(client: Client, data: RawMessageComponentInteractionData); - public readonly component: CacheTypeReducer< + public get component(): CacheTypeReducer< Cached, ActionRowComponent, Exclude>, @@ -1611,7 +1610,7 @@ export class MessageComponentInteraction e export class MessageContextMenuCommandInteraction< Cached extends CacheType = CacheType, > extends ContextMenuCommandInteraction { - public readonly targetMessage: NonNullable['message']>; + public get targetMessage(): NonNullable['message']>; public inGuild(): this is MessageContextMenuCommandInteraction<'raw' | 'cached'>; public inCachedGuild(): this is MessageContextMenuCommandInteraction<'cached'>; public inRawGuild(): this is MessageContextMenuCommandInteraction<'raw'>; @@ -1636,12 +1635,12 @@ export class MessageMentions { private readonly _content: string; private _members: Collection | null; - public readonly channels: Collection; + public get channels(): Collection; public readonly client: Client; public everyone: boolean; public readonly guild: Guild; public has(data: UserResolvable | RoleResolvable | ChannelResolvable, options?: MessageMentionsHasOptions): boolean; - public readonly members: Collection | null; + public get members(): Collection | null; public repliedUser: User | null; public roles: Collection; public users: Collection; @@ -1657,11 +1656,11 @@ export class MessageMentions { export class MessagePayload { public constructor(target: MessageTarget, options: MessageOptions | WebhookMessageOptions); public body: RawMessagePayloadData | null; - public readonly isUser: boolean; - public readonly isWebhook: boolean; - public readonly isMessage: boolean; - public readonly isMessageManager: boolean; - public readonly isInteraction: boolean; + public get isUser(): boolean; + public get isWebhook(): boolean; + public get isMessage(): boolean; + public get isMessageManager(): boolean; + public get isInteraction(): boolean; public files: RawFile[] | null; public options: MessageOptions | WebhookMessageOptions; public target: MessageTarget; @@ -1684,10 +1683,10 @@ export class MessageReaction { public readonly client: Client; public count: number; - public readonly emoji: GuildEmoji | ReactionEmoji; + public get emoji(): GuildEmoji | ReactionEmoji; public me: boolean; public message: Message | PartialMessage; - public readonly partial: false; + public get partial(): false; public users: ReactionUserManager; public remove(): Promise; public fetch(): Promise; @@ -1753,9 +1752,9 @@ export class Presence extends Base { public activities: Activity[]; public clientStatus: ClientPresenceStatusData | null; public guild: Guild | null; - public readonly member: GuildMember | null; + public get member(): GuildMember | null; public status: PresenceStatus; - public readonly user: User | null; + public get user(): User | null; public userId: Snowflake; public equals(presence: Presence): boolean; } @@ -1766,7 +1765,7 @@ export class ReactionCollector extends Collector; + public get members(): Collection; public mentionable: boolean; public name: string; public permissions: Readonly; - public readonly position: number; + public get position(): number; public rawPosition: number; public tags: RoleTagData | null; public comparePositionTo(role: RoleResolvable): number; @@ -1849,7 +1848,7 @@ export class Role extends Base { export class SelectMenuInteraction extends MessageComponentInteraction { public constructor(client: Client, data: RawMessageSelectMenuInteractionData); - public readonly component: CacheTypeReducer< + public get component(): CacheTypeReducer< Cached, SelectMenuComponent, APISelectMenuComponent, @@ -1919,8 +1918,8 @@ export class ShardClientUtil { private decrementMaxListeners(emitter: EventEmitter | ChildProcess): void; public client: Client; - public readonly count: number; - public readonly ids: number[]; + public get count(): number; + public get ids(): number[]; public mode: ShardingManagerMode; public parentPort: MessagePort | null; public broadcastEval(fn: (client: Client) => Awaitable): Promise[]>; @@ -1990,7 +1989,7 @@ export { export class StageChannel extends BaseGuildVoiceChannel { public topic: string | null; public type: ChannelType.GuildStageVoice; - public readonly stageInstance: StageInstance | null; + public get stageInstance(): StageInstance | null; public createStageInstance(options: StageInstanceCreateOptions): Promise; public setTopic(topic: string): Promise; } @@ -2004,33 +2003,33 @@ export class StageInstance extends Base { public privacyLevel: StageInstancePrivacyLevel; /** @deprecated See https://github.com/discord/discord-api-docs/pull/4296 for more information */ public discoverableDisabled: boolean | null; - public readonly channel: StageChannel | null; - public readonly guild: Guild | null; + public get channel(): StageChannel | null; + public get guild(): Guild | null; public edit(options: StageInstanceEditOptions): Promise; public delete(): Promise; public setTopic(topic: string): Promise; - public readonly createdTimestamp: number; - public readonly createdAt: Date; + public get createdTimestamp(): number; + public get createdAt(): Date; } export class Sticker extends Base { private constructor(client: Client, data: RawStickerData); - public readonly createdTimestamp: number; - public readonly createdAt: Date; + public get createdTimestamp(): number; + public get createdAt(): Date; public available: boolean | null; public description: string | null; public format: StickerFormatType; - public readonly guild: Guild | null; + public get guild(): Guild | null; public guildId: Snowflake | null; public id: Snowflake; public name: string; public packId: Snowflake | null; - public readonly partial: boolean; + public get partial(): boolean; public sortValue: number | null; public tags: string[] | null; public type: StickerType | null; public user: User | null; - public readonly url: string; + public get url(): string; public fetch(): Promise; public fetchPack(): Promise; public fetchUser(): Promise; @@ -2041,10 +2040,10 @@ export class Sticker extends Base { export class StickerPack extends Base { private constructor(client: Client, data: RawStickerPackData); - public readonly createdTimestamp: number; - public readonly createdAt: Date; + public get createdTimestamp(): number; + public get createdAt(): Date; public bannerId: Snowflake | null; - public readonly coverSticker: Sticker | null; + public get coverSticker(): Sticker | null; public coverStickerId: Snowflake | null; public description: string; public id: Snowflake; @@ -2141,10 +2140,9 @@ export class Team extends Base { public icon: string | null; public ownerId: Snowflake | null; public members: Collection; - - public readonly owner: TeamMember | null; - public readonly createdAt: Date; - public readonly createdTimestamp: number; + public get owner(): TeamMember | null; + public get createdAt(): Date; + public get createdTimestamp(): number; public iconURL(options?: ImageURLOptions): string | null; public toJSON(): unknown; @@ -2154,7 +2152,7 @@ export class Team extends Base { export class TeamMember extends Base { private constructor(team: Team, data: RawTeamMemberData); public team: Team; - public readonly id: Snowflake; + public get id(): Snowflake; public permissions: string[]; public membershipState: TeamMemberMembershipState; public user: User; @@ -2172,37 +2170,37 @@ export class TextChannel extends BaseGuildTextChannel { export class ThreadChannel extends TextBasedChannelMixin(Channel) { private constructor(guild: Guild, data?: RawThreadChannelData, client?: Client, fromInteraction?: boolean); public archived: boolean | null; - public readonly archivedAt: Date | null; + public get archivedAt(): Date | null; public archiveTimestamp: number | null; - public readonly createdAt: Date | null; + public get createdAt(): Date | null; private _createdTimestamp: number | null; - public readonly createdTimestamp: number | null; + public get createdTimestamp(): number | null; public autoArchiveDuration: ThreadAutoArchiveDuration | null; - public readonly editable: boolean; + public get editable(): boolean; public guild: Guild; public guildId: Snowflake; - public readonly guildMembers: Collection; + public get guildMembers(): Collection; public invitable: boolean | null; - public readonly joinable: boolean; - public readonly joined: boolean; + public get joinable(): boolean; + public get joined(): boolean; public locked: boolean | null; - public readonly manageable: boolean; - public readonly viewable: boolean; - public readonly sendable: boolean; + public get manageable(): boolean; + public get viewable(): boolean; + public get sendable(): boolean; public memberCount: number | null; public messageCount: number | null; public messages: MessageManager; public members: ThreadMemberManager; public name: string; public ownerId: Snowflake | null; - public readonly parent: TextChannel | NewsChannel | null; + public get parent(): TextChannel | NewsChannel | null; public parentId: Snowflake | null; public rateLimitPerUser: number | null; public type: ThreadChannelType; - public readonly unarchivable: boolean; + public get unarchivable(): boolean; public isPrivate(): this is this & { - readonly createdTimestamp: number; - readonly createdAt: Date; + get createdTimestamp(): number; + get createdAt(): Date; type: ChannelType.GuildPrivateThread; }; public delete(reason?: string): Promise; @@ -2230,13 +2228,13 @@ export class ThreadChannel extends TextBasedChannelMixin(Channel) { export class ThreadMember extends Base { private constructor(thread: ThreadChannel, data?: RawThreadMemberData); public flags: ThreadMemberFlagsBitField; - public readonly guildMember: GuildMember | null; + public get guildMember(): GuildMember | null; public id: Snowflake; - public readonly joinedAt: Date | null; + public get joinedAt(): Date | null; public joinedTimestamp: number | null; - public readonly manageable: boolean; + public get manageable(): boolean; public thread: ThreadChannel; - public readonly user: User | null; + public get user(): User | null; public remove(reason?: string): Promise; } @@ -2252,12 +2250,12 @@ export class Typing extends Base { public channel: TextBasedChannel; public user: PartialUser; public startedTimestamp: number; - public readonly startedAt: Date; - public readonly guild: Guild | null; - public readonly member: GuildMember | null; + public get startedAt(): Date; + public get guild(): Guild | null; + public get member(): GuildMember | null; public inGuild(): this is this & { channel: TextChannel | NewsChannel | ThreadChannel; - readonly guild: Guild; + get guild(): Guild; }; } @@ -2269,17 +2267,17 @@ export class User extends PartialTextBasedChannel(Base) { public avatar: string | null; public banner: string | null | undefined; public bot: boolean; - public readonly createdAt: Date; - public readonly createdTimestamp: number; + public get createdAt(): Date; + public get createdTimestamp(): number; public discriminator: string; - public readonly defaultAvatarURL: string; - public readonly dmChannel: DMChannel | null; + public get defaultAvatarURL(): string; + public get dmChannel(): DMChannel | null; public flags: Readonly | null; - public readonly hexAccentColor: HexColorString | null | undefined; + public get hexAccentColor(): HexColorString | null | undefined; public id: Snowflake; - public readonly partial: false; + public get partial(): false; public system: boolean; - public readonly tag: string; + public get tag(): string; public username: string; public avatarURL(options?: ImageURLOptions): string | null; public bannerURL(options?: ImageURLOptions): string | null | undefined; @@ -2295,8 +2293,8 @@ export class User extends PartialTextBasedChannel(Base) { export class UserContextMenuCommandInteraction< Cached extends CacheType = CacheType, > extends ContextMenuCommandInteraction { - public readonly targetUser: User; - public readonly targetMember: CacheTypeReducer; + public get targetUser(): User; + public get targetMember(): CacheTypeReducer; public inGuild(): this is UserContextMenuCommandInteraction<'raw' | 'cached'>; public inCachedGuild(): this is UserContextMenuCommandInteraction<'cached'>; public inRawGuild(): this is UserContextMenuCommandInteraction<'raw'>; @@ -2373,7 +2371,7 @@ export class Formatters extends null { export type ComponentData = ActionRowComponentData | ButtonComponentData | SelectMenuComponentData; export class VoiceChannel extends BaseGuildVoiceChannel { - public readonly speakable: boolean; + public get speakable(): boolean; public type: ChannelType.GuildVoice; public setBitrate(bitrate: number, reason?: string): Promise; public setUserLimit(userLimit: number, reason?: string): Promise; @@ -2391,13 +2389,13 @@ export class VoiceRegion { export class VoiceState extends Base { private constructor(guild: Guild, data: RawVoiceStateData); - public readonly channel: VoiceBasedChannel | null; + public get channel(): VoiceBasedChannel | null; public channelId: Snowflake | null; - public readonly deaf: boolean | null; + public get deaf(): boolean | null; public guild: Guild; public id: Snowflake; - public readonly member: GuildMember | null; - public readonly mute: boolean | null; + public get member(): GuildMember | null; + public get mute(): boolean | null; public selfDeaf: boolean | null; public selfMute: boolean | null; public serverDeaf: boolean | null; @@ -2421,7 +2419,7 @@ export class Webhook extends WebhookMixin() { public avatar: string; public avatarURL(options?: ImageURLOptions): string | null; public channelId: Snowflake; - public client: Client; + public readonly client: Client; public guildId: Snowflake; public name: string; public owner: User | APIUser | null; @@ -2456,7 +2454,7 @@ export class Webhook extends WebhookMixin() { export class WebhookClient extends WebhookMixin(BaseClient) { public constructor(data: WebhookClientData, options?: WebhookClientOptions); - public client: this; + public readonly client: this; public options: WebhookClientOptions; public token: string; public editMessage( @@ -2471,7 +2469,7 @@ export class WebSocketManager extends EventEmitter { private constructor(client: Client); private totalShards: number | string; private shardQueue: Set; - private packetQueue: unknown[]; + private readonly packetQueue: unknown[]; private destroyed: boolean; private reconnecting: boolean; @@ -2479,7 +2477,7 @@ export class WebSocketManager extends EventEmitter { public gateway: string | null; public shards: Collection; public status: Status; - public readonly ping: number; + public get ping(): number; public on(event: GatewayDispatchEvents, listener: (data: any, shardId: number) => void): this; public once(event: GatewayDispatchEvents, listener: (data: any, shardId: number) => void): this; @@ -2510,7 +2508,13 @@ export class WebSocketShard extends EventEmitter { private sessionId: string | null; private lastPingTimestamp: number; private lastHeartbeatAcked: boolean; - private ratelimit: { queue: unknown[]; total: number; remaining: number; time: 60e3; timer: NodeJS.Timeout | null }; + private readonly ratelimit: { + queue: unknown[]; + total: number; + remaining: number; + time: 60e3; + timer: NodeJS.Timeout | null; + }; private connection: WebSocket | null; private helloTimeout: NodeJS.Timeout | null; private eventsAttached: boolean; @@ -2590,13 +2594,13 @@ export class WelcomeChannel extends Base { public channelId: Snowflake; public guild: Guild | InviteGuild; public description: string; - public readonly channel: TextChannel | NewsChannel | StoreChannel | null; - public readonly emoji: GuildEmoji | Emoji; + public get channel(): TextChannel | NewsChannel | StoreChannel | null; + public get emoji(): GuildEmoji | Emoji; } export class WelcomeScreen extends Base { private constructor(guild: Guild, data: RawWelcomeScreenData); - public readonly enabled: boolean; + public get enabled(): boolean; public guild: Guild | InviteGuild; public description: string | null; public welcomeChannels: Collection; @@ -2646,7 +2650,7 @@ export abstract class BaseManager { export abstract class DataManager extends BaseManager { protected constructor(client: Client, holds: Constructable); public readonly holds: Constructable; - public readonly cache: Collection; + public get cache(): Collection; public resolve(resolvable: Holds): Holds; public resolve(resolvable: R): Holds | null; public resolveId(resolvable: K | Holds): K; @@ -2716,7 +2720,6 @@ export class ApplicationCommandPermissionsManager< private constructor(manager: ApplicationCommandManager | GuildApplicationCommandManager | ApplicationCommand); private manager: ApplicationCommandManager | GuildApplicationCommandManager | ApplicationCommand; - public client: Client; public commandId: CommandIdType; public guild: GuildType; public guildId: Snowflake | null; @@ -2761,7 +2764,7 @@ export class CategoryChannelChildManager extends DataManager< private constructor(channel: CategoryChannel); public channel: CategoryChannel; - public readonly guild: Guild; + public get guild(): Guild; public create>( name: string, options: CategoryCreateChannelOptions & { type: T }, @@ -2802,7 +2805,7 @@ export type GuildChannelTypes = CategoryChannelType | ChannelType.GuildCategory; export class GuildChannelManager extends CachedManager { private constructor(guild: Guild, iterable?: Iterable); - public readonly channelCountWithoutThreads: number; + public get channelCountWithoutThreads(): number; public guild: Guild; public create>( @@ -2950,12 +2953,12 @@ export class GuildStickerManager extends CachedManager { private constructor(member: GuildMember); - public readonly hoist: Role | null; - public readonly icon: Role | null; - public readonly color: Role | null; - public readonly highest: Role; - public readonly premiumSubscriberRole: Role | null; - public readonly botRole: Role | null; + public get hoist(): Role | null; + public get icon(): Role | null; + public get color(): Role | null; + public get highest(): Role; + public get premiumSubscriberRole(): Role | null; + public get botRole(): Role | null; public member: GuildMember; public guild: Guild; @@ -2973,7 +2976,6 @@ export class GuildMemberRoleManager extends DataManager { private constructor(channel: TextBasedChannel, iterable?: Iterable); public channel: TextBasedChannel; - public cache: Collection; public crosspost(message: MessageResolvable): Promise; public delete(message: MessageResolvable): Promise; public edit(message: MessageResolvable, options: string | MessagePayload | MessageEditOptions): Promise; @@ -3036,10 +3038,10 @@ export class ReactionUserManager extends CachedManager { private constructor(guild: Guild, iterable?: Iterable); - public readonly everyone: Role; - public readonly highest: Role; + public get everyone(): Role; + public get highest(): Role; public guild: Guild; - public readonly premiumSubscriberRole: Role | null; + public get premiumSubscriberRole(): Role | null; public botRoleFor(user: UserResolvable): Role | null; public fetch(id: Snowflake, options?: BaseFetchOptions): Promise; public fetch(id?: undefined, options?: BaseFetchOptions): Promise>; @@ -3115,9 +3117,9 @@ export interface PartialTextBasedChannelFields { export interface TextBasedChannelFields extends PartialTextBasedChannelFields { lastMessageId: Snowflake | null; - readonly lastMessage: Message | null; + get lastMessage(): Message | null; lastPinTimestamp: number | null; - readonly lastPinAt: Date | null; + get lastPinAt(): Date | null; awaitMessageComponent( options?: AwaitMessageCollectorOptionsParams, ): Promise; @@ -3138,7 +3140,7 @@ export function WebhookMixin(Base?: Constructable): Constructable; editMessage( message: MessageResolvable | '@original', @@ -3149,8 +3151,8 @@ export interface PartialWebhookFields { } export interface WebhookFields extends PartialWebhookFields { - readonly createdAt: Date; - readonly createdTimestamp: number; + get createdAt(): Date; + get createdTimestamp(): number; delete(reason?: string): Promise; edit(options: WebhookEditData, reason?: string): Promise; sendSlackMessage(body: unknown): Promise;