@discordjs/structures 0.2.0-dev.1769385723-323d8e757 → 0.2.0-dev.1769601701-c71228aab

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as discord_api_types_v10 from 'discord-api-types/v10';
2
- import { APIAutoModerationAction, APIAutoModerationActionMetadata, APIAutoModerationRule, APIAutoModerationRuleTriggerMetadata, AttachmentFlags, ChannelFlags, MessageFlags, PermissionFlagsBits, GuildChannelType, ChannelType, ThreadChannelType, GuildTextChannelType, TextChannelType, APIChannel, APIPartialChannel, APIGuildForumTag, APIOverwrite, APIThreadMetadata, APINewsChannel, APIAnnouncementThreadChannel, APIGuildCategoryChannel, APIDMChannel, APIGuildForumChannel, APIGroupDMChannel, APIGuildMediaChannel, APIPrivateThreadChannel, APIPublicThreadChannel, APIGuildStageVoiceChannel, APITextChannel, APIGuildVoiceChannel, APIEmoji, APIEntitlement, APIInteractionDataResolved, APIInvite, APIExtendedInvite, APIMessageComponent, APIModalComponent, ComponentType, APIBaseComponent, APIComponentInActionRow, APIActionRowComponent, ButtonStyle, APIButtonComponentWithCustomId, APIButtonComponent, APISelectMenuComponent, APIChannelSelectComponent, APIContainerComponent, APIFileComponent, APIFileUploadComponent, APIButtonComponentWithURL, APIMediaGalleryComponent, APIMentionableSelectComponent, APIButtonComponentWithSKUId, APIRoleSelectComponent, APISectionComponent, APISeparatorComponent, APIStringSelectComponent, APITextDisplayComponent, APITextInputComponent, APIThumbnailComponent, APIUserSelectComponent, APIMessageComponentEmoji, APIMediaGalleryItem, SelectMenuDefaultValueType, APISelectMenuDefaultValue, APISelectMenuOption, APIUnfurledMediaItem, APIEmbed, APIEmbedAuthor, APIEmbedField, APIEmbedFooter, APIEmbedImage, APIEmbedProvider, APIEmbedThumbnail, APIEmbedVideo, InteractionType, APIMessageInteractionMetadata, APIApplicationCommandInteractionMetadata, APIAttachment, APIChannelMention, APIMessage, APIMessageActivity, APIMessageCall, APIMessageComponentInteractionMetadata, APIMessageReference, MessageReferenceType, APIModalSubmitInteractionMetadata, APIReaction, APIReactionCountDetails, APIMessageRoleSubscriptionData, APIPoll, APIPollAnswer, APIPollAnswerCount, APIPollMedia, APIPollResults, APISticker, APIAvatarDecorationData, APIUser, APIConnection } from 'discord-api-types/v10';
2
+ import { APIAutoModerationAction, APIAutoModerationActionMetadata, APIAutoModerationRule, APIAutoModerationRuleTriggerMetadata, AttachmentFlags, ChannelFlags, MessageFlags, PermissionFlagsBits, SKUFlags, GuildChannelType, ChannelType, ThreadChannelType, GuildTextChannelType, TextChannelType, APIChannel, APIPartialChannel, APIGuildForumTag, APIOverwrite, APIThreadMetadata, APINewsChannel, APIAnnouncementThreadChannel, APIGuildCategoryChannel, APIDMChannel, APIGuildForumChannel, APIGroupDMChannel, APIGuildMediaChannel, APIPrivateThreadChannel, APIPublicThreadChannel, APIGuildStageVoiceChannel, APITextChannel, APIGuildVoiceChannel, APIEmoji, APIEntitlement, APIInteractionDataResolved, APIInvite, APIExtendedInvite, APIMessageComponent, APIModalComponent, ComponentType, APIBaseComponent, APIComponentInActionRow, APIActionRowComponent, ButtonStyle, APIButtonComponentWithCustomId, APIButtonComponent, APISelectMenuComponent, APIChannelSelectComponent, APIContainerComponent, APIFileComponent, APIFileUploadComponent, APIButtonComponentWithURL, APIMediaGalleryComponent, APIMentionableSelectComponent, APIButtonComponentWithSKUId, APIRoleSelectComponent, APISectionComponent, APISeparatorComponent, APIStringSelectComponent, APITextDisplayComponent, APITextInputComponent, APIThumbnailComponent, APIUserSelectComponent, APIMessageComponentEmoji, APIMediaGalleryItem, SelectMenuDefaultValueType, APISelectMenuDefaultValue, APISelectMenuOption, APIUnfurledMediaItem, APIEmbed, APIEmbedAuthor, APIEmbedField, APIEmbedFooter, APIEmbedImage, APIEmbedProvider, APIEmbedThumbnail, APIEmbedVideo, InteractionType, APIMessageInteractionMetadata, APIApplicationCommandInteractionMetadata, APIAttachment, APIChannelMention, APIMessage, APIMessageActivity, APIMessageCall, APIMessageComponentInteractionMetadata, APIMessageReference, MessageReferenceType, APIModalSubmitInteractionMetadata, APIReaction, APIReactionCountDetails, APIMessageRoleSubscriptionData, APIPoll, APIPollAnswer, APIPollAnswerCount, APIPollMedia, APIPollResults, APISKU, APISoundboardSound, APIStageInstance, APISticker, APIStickerPack, APITeam, APITeamMember, APIAvatarDecorationData, APIUser, APIConnection, APIVoiceState, APIVoiceRegion, APISubscription } from 'discord-api-types/v10';
3
3
 
4
4
  declare const kData: unique symbol;
5
5
  declare const kClone: unique symbol;
@@ -11,6 +11,9 @@ declare const kEditedTimestamp: unique symbol;
11
11
  declare const kArchiveTimestamp: unique symbol;
12
12
  declare const kStartsTimestamp: unique symbol;
13
13
  declare const kEndsTimestamp: unique symbol;
14
+ declare const kCurrentPeriodStartTimestamp: unique symbol;
15
+ declare const kCurrentPeriodEndTimestamp: unique symbol;
16
+ declare const kCanceledTimestamp: unique symbol;
14
17
  declare const kAllow: unique symbol;
15
18
  declare const kDeny: unique symbol;
16
19
  declare const kBurstColors: unique symbol;
@@ -161,7 +164,9 @@ declare class AutoModerationAction<Omitted extends keyof APIAutoModerationAction
161
164
  */
162
165
  constructor(data: Partialize<APIAutoModerationAction, Omitted>);
163
166
  /**
164
- * The {@link https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-action-object-action-types | action type}
167
+ * The action type
168
+ *
169
+ * @see {@link https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-action-object-action-types}
165
170
  */
166
171
  get type(): "type" extends infer T ? T extends "type" ? T extends Omitted ? unknown : APIAutoModerationAction[T] : never : never;
167
172
  }
@@ -237,11 +242,15 @@ declare class AutoModerationRule<Omitted extends keyof APIAutoModerationRule | '
237
242
  */
238
243
  get creatorId(): "creator_id" extends infer T ? T extends "creator_id" ? T extends Omitted ? unknown : APIAutoModerationRule[T] : never : never;
239
244
  /**
240
- * The rule {@link https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-rule-object-event-types | event type}
245
+ * The rule event type
246
+ *
247
+ * @see {@link https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-rule-object-event-types}
241
248
  */
242
249
  get eventType(): "event_type" extends infer T ? T extends "event_type" ? T extends Omitted ? unknown : APIAutoModerationRule[T] : never : never;
243
250
  /**
244
- * The rule {@link https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-rule-object-trigger-types | trigger type}
251
+ * The rule trigger type
252
+ *
253
+ * @see {@link https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-rule-object-trigger-types}
245
254
  */
246
255
  get triggerType(): "trigger_type" extends infer T ? T extends "trigger_type" ? T extends Omitted ? unknown : APIAutoModerationRule[T] : never : never;
247
256
  /**
@@ -431,7 +440,7 @@ declare abstract class BitField<Flags extends string> {
431
440
  /**
432
441
  * Data structure that makes it easy to interact with a {@link Attachment#flags} bitfield.
433
442
  */
434
- declare class AttachmentFlagsBitField extends BitField<keyof AttachmentFlags> {
443
+ declare class AttachmentFlagsBitField extends BitField<keyof typeof AttachmentFlags> {
435
444
  /**
436
445
  * Numeric attachment flags.
437
446
  */
@@ -442,7 +451,7 @@ declare class AttachmentFlagsBitField extends BitField<keyof AttachmentFlags> {
442
451
  /**
443
452
  * Data structure that makes it easy to interact with a {@link (Channel:class).flags} bitfield.
444
453
  */
445
- declare class ChannelFlagsBitField extends BitField<keyof ChannelFlags> {
454
+ declare class ChannelFlagsBitField extends BitField<keyof typeof ChannelFlags> {
446
455
  /**
447
456
  * Numeric guild channel flags.
448
457
  */
@@ -453,7 +462,7 @@ declare class ChannelFlagsBitField extends BitField<keyof ChannelFlags> {
453
462
  /**
454
463
  * Data structure that makes it easy to interact with a {@link Message#flags} bitfield.
455
464
  */
456
- declare class MessageFlagsBitField extends BitField<keyof MessageFlags> {
465
+ declare class MessageFlagsBitField extends BitField<keyof typeof MessageFlags> {
457
466
  /**
458
467
  * Numeric message flags.
459
468
  */
@@ -570,6 +579,17 @@ declare class PermissionsBitField extends BitField<keyof typeof PermissionFlagsB
570
579
  toArray(): ("CreateInstantInvite" | "KickMembers" | "BanMembers" | "Administrator" | "ManageChannels" | "ManageGuild" | "AddReactions" | "ViewAuditLog" | "PrioritySpeaker" | "Stream" | "ViewChannel" | "SendMessages" | "SendTTSMessages" | "ManageMessages" | "EmbedLinks" | "AttachFiles" | "ReadMessageHistory" | "MentionEveryone" | "UseExternalEmojis" | "ViewGuildInsights" | "Connect" | "Speak" | "MuteMembers" | "DeafenMembers" | "MoveMembers" | "UseVAD" | "ChangeNickname" | "ManageNicknames" | "ManageRoles" | "ManageWebhooks" | "ManageEmojisAndStickers" | "ManageGuildExpressions" | "UseApplicationCommands" | "RequestToSpeak" | "ManageEvents" | "ManageThreads" | "CreatePublicThreads" | "CreatePrivateThreads" | "UseExternalStickers" | "SendMessagesInThreads" | "UseEmbeddedActivities" | "ModerateMembers" | "ViewCreatorMonetizationAnalytics" | "UseSoundboard" | "CreateGuildExpressions" | "CreateEvents" | "UseExternalSounds" | "SendVoiceMessages" | "SendPolls" | "UseExternalApps" | "PinMessages" | "BypassSlowmode")[];
571
580
  }
572
581
 
582
+ /**
583
+ * Data structure that makes it easy to interact with an {@link SKUFlags} bitfield.
584
+ */
585
+ declare class SKUFlagsBitField extends BitField<keyof typeof SKUFlags> {
586
+ /**
587
+ * Numeric SKU flags.
588
+ */
589
+ static readonly Flags: typeof SKUFlags;
590
+ toJSON(): string | number;
591
+ }
592
+
573
593
  interface ChannelPermissionMixin<Type extends Exclude<GuildChannelType, ChannelType.GuildDirectory | ThreadChannelType> = Exclude<GuildChannelType, ChannelType.GuildDirectory | ThreadChannelType>> extends Channel<Type> {
574
594
  }
575
595
  /**
@@ -3031,6 +3051,153 @@ declare class PollResults<Omitted extends keyof APIPollResults | '' = ''> extend
3031
3051
  get isFinalized(): "is_finalized" extends infer T ? T extends "is_finalized" ? T extends Omitted ? unknown : APIPollResults[T] : never : never;
3032
3052
  }
3033
3053
 
3054
+ /**
3055
+ * Represents any SKU (stock-keeping units) on Discord.
3056
+ *
3057
+ * @typeParam Omitted - Specify the properties that will not be stored in the raw data field as a union, implement via `DataTemplate`
3058
+ */
3059
+ declare class SKU<Omitted extends keyof APISKU | '' = ''> extends Structure<APISKU, Omitted> {
3060
+ /**
3061
+ * The template used for removing data from the raw data stored for each SKU
3062
+ */
3063
+ static readonly DataTemplate: Partial<APISKU>;
3064
+ /**
3065
+ * @param data - The raw data received from the API for the SKU
3066
+ */
3067
+ constructor(data: Partialize<APISKU, Omitted>);
3068
+ /**
3069
+ * Id of the SKU
3070
+ */
3071
+ get id(): "id" extends infer T ? T extends "id" ? T extends Omitted ? unknown : APISKU[T] : never : never;
3072
+ /**
3073
+ * Type of SKU
3074
+ *
3075
+ * @see {@link https://discord.com/developers/docs/resources/sku#sku-object-sku-types}
3076
+ */
3077
+ get type(): "type" extends infer T ? T extends "type" ? T extends Omitted ? unknown : APISKU[T] : never : never;
3078
+ /**
3079
+ * Id of the parent application
3080
+ */
3081
+ get applicationId(): "application_id" extends infer T ? T extends "application_id" ? T extends Omitted ? unknown : APISKU[T] : never : never;
3082
+ /**
3083
+ * Customer-facing name of your premium offering
3084
+ */
3085
+ get name(): "name" extends infer T ? T extends "name" ? T extends Omitted ? unknown : APISKU[T] : never : never;
3086
+ /**
3087
+ * System-generated URL slug based on the SKU's name
3088
+ */
3089
+ get slug(): "slug" extends infer T ? T extends "slug" ? T extends Omitted ? unknown : APISKU[T] : never : never;
3090
+ /**
3091
+ * SKU flags combined as a bitfield
3092
+ */
3093
+ get flags(): SKUFlagsBitField | null;
3094
+ }
3095
+
3096
+ /**
3097
+ * Represents any soundboard sound on Discord.
3098
+ *
3099
+ * @typeParam Omitted - Specify the properties that will not be stored in the raw data field as a union, implement via `DataTemplate`
3100
+ * @remarks has substructure `User` which needs to be instantiated and stored by an extending class using it
3101
+ */
3102
+ declare class SoundboardSound<Omitted extends keyof APISoundboardSound | '' = ''> extends Structure<APISoundboardSound, Omitted> {
3103
+ /**
3104
+ * The template used for removing data from the raw data stored for each soundboard sound.
3105
+ */
3106
+ static readonly DataTemplate: Partial<APISoundboardSound>;
3107
+ /**
3108
+ * @param data - The raw data received from the API for the soundboard sound
3109
+ */
3110
+ constructor(data: Partialize<APISoundboardSound, Omitted>);
3111
+ /**
3112
+ * The name of this sound
3113
+ */
3114
+ get name(): "name" extends infer T ? T extends "name" ? T extends Omitted ? unknown : APISoundboardSound[T] : never : never;
3115
+ /**
3116
+ * The id of this sound
3117
+ */
3118
+ get soundId(): "sound_id" extends infer T ? T extends "sound_id" ? T extends Omitted ? unknown : APISoundboardSound[T] : never : never;
3119
+ /**
3120
+ * The volume of this sound, from 0 to 1
3121
+ */
3122
+ get volume(): "volume" extends infer T ? T extends "volume" ? T extends Omitted ? unknown : APISoundboardSound[T] : never : never;
3123
+ /**
3124
+ * The id of this sound's custom emoji
3125
+ */
3126
+ get emojiId(): "emoji_id" extends infer T ? T extends "emoji_id" ? T extends Omitted ? unknown : APISoundboardSound[T] : never : never;
3127
+ /**
3128
+ * The unicode character of this sound's standard emoji
3129
+ */
3130
+ get emojiName(): "emoji_name" extends infer T ? T extends "emoji_name" ? T extends Omitted ? unknown : APISoundboardSound[T] : never : never;
3131
+ /**
3132
+ * The id of the guild this sound is in
3133
+ */
3134
+ get guildId(): ("guild_id" extends infer T ? T extends "guild_id" ? T extends Omitted ? unknown : APISoundboardSound[T] : never : never) | undefined;
3135
+ /**
3136
+ * Whether this sound can be used, may be false due to loss of server boosts
3137
+ */
3138
+ get available(): "available" extends infer T ? T extends "available" ? T extends Omitted ? unknown : APISoundboardSound[T] : never : never;
3139
+ /**
3140
+ * The timestamp this sound was created at
3141
+ *
3142
+ * @remarks only available for guild soundboard sounds
3143
+ */
3144
+ get createdTimestamp(): number | null;
3145
+ /**
3146
+ * The time this sound was created at
3147
+ *
3148
+ * @remarks only available for guild soundboard sounds
3149
+ */
3150
+ get createdAt(): Date | null;
3151
+ }
3152
+
3153
+ /**
3154
+ * Represents any stage instance on Discord.
3155
+ *
3156
+ * @typeParam Omitted - Specify the properties that will not be stored in the raw data field as a union, implement via `DataTemplate`
3157
+ */
3158
+ declare class StageInstance<Omitted extends keyof APIStageInstance | '' = ''> extends Structure<APIStageInstance, Omitted> {
3159
+ /**
3160
+ * The template used for removing data from the raw data stored for each stage instance
3161
+ */
3162
+ static readonly DataTemplate: Partial<APIStageInstance>;
3163
+ /**
3164
+ * @param data - The raw data received from the API for the stage instance
3165
+ */
3166
+ constructor(data: Partialize<APIStageInstance, Omitted>);
3167
+ /**
3168
+ * The stage instance's id
3169
+ */
3170
+ get id(): "id" extends infer T ? T extends "id" ? T extends Omitted ? unknown : APIStageInstance[T] : never : never;
3171
+ /**
3172
+ * The guild id of the associated stage channel
3173
+ */
3174
+ get guildId(): "guild_id" extends infer T ? T extends "guild_id" ? T extends Omitted ? unknown : APIStageInstance[T] : never : never;
3175
+ /**
3176
+ * The id of the associated stage channel
3177
+ */
3178
+ get channelId(): "channel_id" extends infer T ? T extends "channel_id" ? T extends Omitted ? unknown : APIStageInstance[T] : never : never;
3179
+ /**
3180
+ * The topic of the stage instance (1-120 characters)
3181
+ */
3182
+ get topic(): "topic" extends infer T ? T extends "topic" ? T extends Omitted ? unknown : APIStageInstance[T] : never : never;
3183
+ /**
3184
+ * The privacy level of the stage instance
3185
+ */
3186
+ get privacyLevel(): "privacy_level" extends infer T ? T extends "privacy_level" ? T extends Omitted ? unknown : APIStageInstance[T] : never : never;
3187
+ /**
3188
+ * The id of the scheduled event for this stage instance
3189
+ */
3190
+ get guildScheduledEventId(): ("guild_scheduled_event_id" extends infer T ? T extends "guild_scheduled_event_id" ? T extends Omitted ? unknown : APIStageInstance[T] : never : never) | undefined;
3191
+ /**
3192
+ * The timestamp the stage instance was created at
3193
+ */
3194
+ get createdTimestamp(): number | null;
3195
+ /**
3196
+ * The time the stage instance was created at
3197
+ */
3198
+ get createdAt(): Date | null;
3199
+ }
3200
+
3034
3201
  /**
3035
3202
  * Represents a sticker on Discord.
3036
3203
  *
@@ -3073,6 +3240,139 @@ declare class Sticker<Omitted extends keyof APISticker | '' = ''> extends Struct
3073
3240
  * The type of this sticker
3074
3241
  */
3075
3242
  get type(): "type" extends infer T ? T extends "type" ? T extends Omitted ? unknown : APISticker[T] : never : never;
3243
+ /**
3244
+ * The timestamp the sticker was created at
3245
+ */
3246
+ get createdTimestamp(): number | null;
3247
+ /**
3248
+ * The time the sticker was created at
3249
+ */
3250
+ get createdAt(): Date | null;
3251
+ }
3252
+
3253
+ /**
3254
+ * Represents a sticker pack on Discord.
3255
+ *
3256
+ * @typeParam Omitted - Specify the properties that will not be stored in the raw data field as a union, implement via `DataTemplate`
3257
+ * @remarks has substructure `Sticker` which needs to be instantiated and stored by an extending class using it
3258
+ */
3259
+ declare class StickerPack<Omitted extends keyof APIStickerPack | '' = ''> extends Structure<APIStickerPack, Omitted> {
3260
+ /**
3261
+ * The template used for removing data from the raw data stored for each sticker pack
3262
+ */
3263
+ static DataTemplate: Partial<APIStickerPack>;
3264
+ /**
3265
+ * @param data - The raw data received from the API for the sticker pack
3266
+ */
3267
+ constructor(data: Partialize<APIStickerPack, Omitted>);
3268
+ /**
3269
+ * The id of the sticker pack
3270
+ */
3271
+ get id(): "id" extends infer T ? T extends "id" ? T extends Omitted ? unknown : APIStickerPack[T] : never : never;
3272
+ /**
3273
+ * The name of the sticker pack
3274
+ */
3275
+ get name(): "name" extends infer T ? T extends "name" ? T extends Omitted ? unknown : APIStickerPack[T] : never : never;
3276
+ /**
3277
+ * The id of the pack's SKU
3278
+ */
3279
+ get skuId(): "sku_id" extends infer T ? T extends "sku_id" ? T extends Omitted ? unknown : APIStickerPack[T] : never : never;
3280
+ /**
3281
+ * The id of a sticker in the pack which is shown as the pack's icon
3282
+ */
3283
+ get coverStickerId(): ("cover_sticker_id" extends infer T ? T extends "cover_sticker_id" ? T extends Omitted ? unknown : APIStickerPack[T] : never : never) | undefined;
3284
+ /**
3285
+ * The description of the sticker pack
3286
+ */
3287
+ get description(): "description" extends infer T ? T extends "description" ? T extends Omitted ? unknown : APIStickerPack[T] : never : never;
3288
+ /**
3289
+ * The id of the sticker pack's banner image
3290
+ *
3291
+ * @see {@link https://discord.com/developers/docs/reference#image-formatting}
3292
+ */
3293
+ get bannerAssetId(): ("banner_asset_id" extends infer T ? T extends "banner_asset_id" ? T extends Omitted ? unknown : APIStickerPack[T] : never : never) | undefined;
3294
+ /**
3295
+ * The timestamp the sticker pack was created at
3296
+ */
3297
+ get createdTimestamp(): number | null;
3298
+ /**
3299
+ * The time the sticker pack was created at
3300
+ */
3301
+ get createdAt(): Date | null;
3302
+ }
3303
+
3304
+ /**
3305
+ * Represents any team on Discord.
3306
+ *
3307
+ * @typeParam Omitted - Specify the properties that will not be stored in the raw data field as a union, implement via `DataTemplate`
3308
+ * @remarks has substructure `TeamMember` which needs to be instantiated and stored by an extending class using it
3309
+ */
3310
+ declare class Team<Omitted extends keyof APITeam | '' = ''> extends Structure<APITeam, Omitted> {
3311
+ /**
3312
+ * The template used for removing data from the raw data stored for each team.
3313
+ */
3314
+ static readonly DataTemplate: Partial<APITeam>;
3315
+ /**
3316
+ * @param data - The raw data received from the API for the team.
3317
+ */
3318
+ constructor(data: Partialize<APITeam, Omitted>);
3319
+ /**
3320
+ * Hash of the image of the team's icon
3321
+ */
3322
+ get icon(): "icon" extends infer T ? T extends "icon" ? T extends Omitted ? unknown : APITeam[T] : never : never;
3323
+ /**
3324
+ * The unique id of the team
3325
+ */
3326
+ get id(): "id" extends infer T ? T extends "id" ? T extends Omitted ? unknown : APITeam[T] : never : never;
3327
+ /**
3328
+ * Name of the team
3329
+ */
3330
+ get name(): "name" extends infer T ? T extends "name" ? T extends Omitted ? unknown : APITeam[T] : never : never;
3331
+ /**
3332
+ * User ID of the current team owner
3333
+ */
3334
+ get ownerUserId(): "owner_user_id" extends infer T ? T extends "owner_user_id" ? T extends Omitted ? unknown : APITeam[T] : never : never;
3335
+ /**
3336
+ * The timestamp the team was created at
3337
+ */
3338
+ get createdTimestamp(): number | null;
3339
+ /**
3340
+ * The time the team was created at
3341
+ */
3342
+ get createdAt(): Date | null;
3343
+ }
3344
+
3345
+ /**
3346
+ * Represents any team member on Discord.
3347
+ *
3348
+ * @typeParam Omitted - Specify the properties that will not be stored in the raw data field as a union, implement via `DataTemplate`
3349
+ * @remarks has substructure `User` which needs to be instantiated and stored by an extending class using it
3350
+ */
3351
+ declare class TeamMember<Omitted extends keyof APITeamMember | '' = ''> extends Structure<APITeamMember, Omitted> {
3352
+ /**
3353
+ * The template used for removing data from the raw data stored for each team member
3354
+ */
3355
+ static readonly DataTemplate: Partial<APITeamMember>;
3356
+ /**
3357
+ * @param data - The raw data received from the API for the team member
3358
+ */
3359
+ constructor(data: Partialize<APITeamMember, Omitted>);
3360
+ /**
3361
+ * User's membership state on the team
3362
+ *
3363
+ * @see {@link https://discord.com/developers/docs/topics/teams#data-models-membership-state-enum}
3364
+ */
3365
+ get membershipState(): "membership_state" extends infer T ? T extends "membership_state" ? T extends Omitted ? unknown : APITeamMember[T] : never : never;
3366
+ /**
3367
+ * Id of the parent team of which they are a member
3368
+ */
3369
+ get teamId(): "team_id" extends infer T ? T extends "team_id" ? T extends Omitted ? unknown : APITeamMember[T] : never : never;
3370
+ /**
3371
+ * Role of the team member
3372
+ *
3373
+ * @see {@link https://discord.com/developers/docs/topics/teams#team-member-roles-team-member-role-types}
3374
+ */
3375
+ get role(): "role" extends infer T ? T extends "role" ? T extends Omitted ? unknown : APITeamMember[T] : never : never;
3076
3376
  }
3077
3377
 
3078
3378
  /**
@@ -3256,6 +3556,194 @@ declare class Connection<Omitted extends keyof APIConnection | '' = ''> extends
3256
3556
  get visibility(): "visibility" extends infer T ? T extends "visibility" ? T extends Omitted ? unknown : APIConnection[T] : never : never;
3257
3557
  }
3258
3558
 
3559
+ /**
3560
+ * Represents any voice state on Discord.
3561
+ *
3562
+ * @typeParam Omitted - Specify the properties that will not be stored in the raw data field as a union, implement via `DataTemplate`
3563
+ * @remarks has substructure `GuildMember` which needs to be instantiated and stored by an extending class using it
3564
+ */
3565
+ declare class VoiceState<Omitted extends keyof APIVoiceState | '' = ''> extends Structure<APIVoiceState, Omitted> {
3566
+ /**
3567
+ * The template used for removing data from the raw data stored for each voice state
3568
+ */
3569
+ static readonly DataTemplate: Partial<APIVoiceState>;
3570
+ /**
3571
+ * @param data - The raw data received from the API for the voice state
3572
+ */
3573
+ constructor(data: Partialize<APIVoiceState, Omitted>);
3574
+ /**
3575
+ * The guild id this voice state is for
3576
+ */
3577
+ get guildId(): ("guild_id" extends infer T ? T extends "guild_id" ? T extends Omitted ? unknown : APIVoiceState[T] : never : never) | undefined;
3578
+ /**
3579
+ * The channel id this user is connected to
3580
+ */
3581
+ get channelId(): "channel_id" extends infer T ? T extends "channel_id" ? T extends Omitted ? unknown : APIVoiceState[T] : never : never;
3582
+ /**
3583
+ * The user id this voice state is for
3584
+ */
3585
+ get userId(): "user_id" extends infer T ? T extends "user_id" ? T extends Omitted ? unknown : APIVoiceState[T] : never : never;
3586
+ /**
3587
+ * The session id for this voice state
3588
+ */
3589
+ get sessionId(): "session_id" extends infer T ? T extends "session_id" ? T extends Omitted ? unknown : APIVoiceState[T] : never : never;
3590
+ /**
3591
+ * Whether this user is deafened by the server
3592
+ */
3593
+ get deaf(): "deaf" extends infer T ? T extends "deaf" ? T extends Omitted ? unknown : APIVoiceState[T] : never : never;
3594
+ /**
3595
+ * Whether this user is muted by the server
3596
+ */
3597
+ get mute(): "mute" extends infer T ? T extends "mute" ? T extends Omitted ? unknown : APIVoiceState[T] : never : never;
3598
+ /**
3599
+ * Whether this user is locally deafened
3600
+ */
3601
+ get selfDeaf(): "self_deaf" extends infer T ? T extends "self_deaf" ? T extends Omitted ? unknown : APIVoiceState[T] : never : never;
3602
+ /**
3603
+ * Whether this user is locally muted
3604
+ */
3605
+ get selfMute(): "self_mute" extends infer T ? T extends "self_mute" ? T extends Omitted ? unknown : APIVoiceState[T] : never : never;
3606
+ /**
3607
+ * Whether this user is streaming using "Go Live"
3608
+ */
3609
+ get selfStream(): ("self_stream" extends infer T ? T extends "self_stream" ? T extends Omitted ? unknown : APIVoiceState[T] : never : never) | undefined;
3610
+ /**
3611
+ * Whether this user's camera is enabled
3612
+ */
3613
+ get selfVideo(): "self_video" extends infer T ? T extends "self_video" ? T extends Omitted ? unknown : APIVoiceState[T] : never : never;
3614
+ /**
3615
+ * Whether this user's permission to speak is denied
3616
+ */
3617
+ get suppress(): "suppress" extends infer T ? T extends "suppress" ? T extends Omitted ? unknown : APIVoiceState[T] : never : never;
3618
+ /**
3619
+ * The time at which the user requested to speak
3620
+ */
3621
+ get requestToSpeakTimestamp(): "request_to_speak_timestamp" extends infer T ? T extends "request_to_speak_timestamp" ? T extends Omitted ? unknown : APIVoiceState[T] : never : never;
3622
+ }
3623
+
3624
+ /**
3625
+ * Represents any voice region on Discord.
3626
+ *
3627
+ * @typeParam Omitted - Specify the properties that will not be stored in the raw data field as a union, implement via `DataTemplate`
3628
+ */
3629
+ declare class VoiceRegion<Omitted extends keyof APIVoiceRegion | '' = ''> extends Structure<APIVoiceRegion, Omitted> {
3630
+ /**
3631
+ * The template used for removing data from the raw data stored for each voice region
3632
+ */
3633
+ static readonly DataTemplate: Partial<APIVoiceRegion>;
3634
+ /**
3635
+ * @param data - The raw data received from the API for the voice region
3636
+ */
3637
+ constructor(data: Partialize<APIVoiceRegion, Omitted>);
3638
+ /**
3639
+ * Unique id for the region
3640
+ */
3641
+ get id(): "id" extends infer T ? T extends "id" ? T extends Omitted ? unknown : APIVoiceRegion[T] : never : never;
3642
+ /**
3643
+ * Name of the region
3644
+ */
3645
+ get name(): "name" extends infer T ? T extends "name" ? T extends Omitted ? unknown : APIVoiceRegion[T] : never : never;
3646
+ /**
3647
+ * `true` for a single server that is closest to the current user's client
3648
+ */
3649
+ get optimal(): "optimal" extends infer T ? T extends "optimal" ? T extends Omitted ? unknown : APIVoiceRegion[T] : never : never;
3650
+ /**
3651
+ * Whether this is a deprecated voice region (avoid switching to these)
3652
+ */
3653
+ get deprecated(): "deprecated" extends infer T ? T extends "deprecated" ? T extends Omitted ? unknown : APIVoiceRegion[T] : never : never;
3654
+ /**
3655
+ * Whether this is a custom voice region (used for events/etc)
3656
+ */
3657
+ get custom(): "custom" extends infer T ? T extends "custom" ? T extends Omitted ? unknown : APIVoiceRegion[T] : never : never;
3658
+ }
3659
+
3660
+ /**
3661
+ * Represents any subscription on Discord.
3662
+ *
3663
+ * @typeParam Omitted - Specify the properties that will not be stored in the raw data field as a union, implement via `DataTemplate`
3664
+ */
3665
+ declare class Subscription<Omitted extends keyof APISubscription | '' = 'canceled_at' | 'current_period_end' | 'current_period_start'> extends Structure<APISubscription, Omitted> {
3666
+ /**
3667
+ * The template used for removing data from the raw data stored for each subscription
3668
+ */
3669
+ static readonly DataTemplate: Partial<APISubscription>;
3670
+ protected [kCurrentPeriodStartTimestamp]: number | null;
3671
+ protected [kCurrentPeriodEndTimestamp]: number | null;
3672
+ protected [kCanceledTimestamp]: number | null;
3673
+ /**
3674
+ * @param data - The raw data received from the API for the subscription
3675
+ */
3676
+ constructor(data: Partialize<APISubscription, Omitted>);
3677
+ /**
3678
+ * {@inheritDoc Structure.optimizeData}
3679
+ */
3680
+ protected optimizeData(data: Partial<APISubscription>): void;
3681
+ /**
3682
+ * The subscription's id
3683
+ *
3684
+ * @remarks The start of a subscription is determined by its id. When the subscription renews, its current period is updated.
3685
+ */
3686
+ get id(): "id" extends infer T ? T extends "id" ? T extends Omitted ? unknown : APISubscription[T] : never : never;
3687
+ /**
3688
+ * Id of the user who is subscribed
3689
+ */
3690
+ get userId(): "user_id" extends infer T ? T extends "user_id" ? T extends Omitted ? unknown : APISubscription[T] : never : never;
3691
+ /**
3692
+ * List of SKUs subscribed to
3693
+ */
3694
+ get skuIds(): "sku_ids" extends infer T ? T extends "sku_ids" ? T extends Omitted ? unknown : APISubscription[T] : never : never;
3695
+ /**
3696
+ * List of entitlements granted for this subscription
3697
+ */
3698
+ get entitlementIds(): "entitlement_ids" extends infer T ? T extends "entitlement_ids" ? T extends Omitted ? unknown : APISubscription[T] : never : never;
3699
+ /**
3700
+ * List of SKUs that this user will be subscribed to at renewal
3701
+ */
3702
+ get renewalSkuIds(): "renewal_sku_ids" extends infer T ? T extends "renewal_sku_ids" ? T extends Omitted ? unknown : APISubscription[T] : never : never;
3703
+ /**
3704
+ * Timestamp of start of the current subscription period
3705
+ */
3706
+ get currentPeriodStartTimestamp(): number | null;
3707
+ /**
3708
+ * The time at which the current subscription period will start
3709
+ */
3710
+ get currentPeriodStartAt(): Date | null;
3711
+ /**
3712
+ * Timestamp of end of the current subscription period
3713
+ */
3714
+ get currentPeriodEndTimestamp(): number | null;
3715
+ /**
3716
+ * The time at which the current subscription period will end
3717
+ */
3718
+ get currentPeriodEndsAt(): Date | null;
3719
+ /**
3720
+ * The {@link SubscriptionStatus} of the current subscription
3721
+ */
3722
+ get status(): "status" extends infer T ? T extends "status" ? T extends Omitted ? unknown : APISubscription[T] : never : never;
3723
+ /**
3724
+ * Timestamp when the subscription was canceled
3725
+ */
3726
+ get canceledTimestamp(): number | null;
3727
+ /**
3728
+ * The time when the subscription was canceled
3729
+ *
3730
+ * @remarks This is populated when the {@link Subscription#status} transitions to {@link SubscriptionStatus.Ending}.
3731
+ */
3732
+ get canceledAt(): Date | null;
3733
+ /**
3734
+ * ISO3166-1 alpha-2 country code of the payment source used to purchase the subscription. Missing unless queried with a private OAuth scope.
3735
+ */
3736
+ get country(): ("country" extends infer T ? T extends "country" ? T extends Omitted ? unknown : APISubscription[T] : never : never) | undefined;
3737
+ /**
3738
+ * The timestamp the subscription was created at
3739
+ */
3740
+ get createdTimestamp(): number | null;
3741
+ /**
3742
+ * The time the subscription was created at
3743
+ */
3744
+ get createdAt(): Date | null;
3745
+ }
3746
+
3259
3747
  declare function extendTemplate<SuperTemplate extends Record<string, unknown>>(superTemplate: SuperTemplate, additions: Record<string, unknown>): Record<string, unknown> & SuperTemplate;
3260
3748
  /**
3261
3749
  * Turns a JavaScript Date object into the timestamp format used by Discord in payloads.
@@ -3267,4 +3755,4 @@ declare function extendTemplate<SuperTemplate extends Record<string, unknown>>(s
3267
3755
  */
3268
3756
  declare function dateToDiscordISOTimestamp(date: Date): string;
3269
3757
 
3270
- export { type APIActualInvite, ActionRowComponent, AnnouncementChannel, AnnouncementThreadChannel, ApplicationCommandInteractionMetadata, AppliedTagsMixin, Attachment, AttachmentFlagsBitField, AutoModerationAction, AutoModerationActionMetadata, AutoModerationRule, AutoModerationRuleTriggerMetadata, AvatarDecorationData, BitField, type BitFieldResolvable, ButtonComponent, type ButtonDataType, CategoryChannel, Channel, type ChannelDataType, ChannelFlagsBitField, ChannelMention, ChannelOwnerMixin, ChannelParentMixin, ChannelPermissionMixin, ChannelPinMixin, ChannelSelectMenuComponent, ChannelSlowmodeMixin, ChannelTopicMixin, ChannelWebhookMixin, type CollapseUnion, Component, type ComponentDataType, ComponentEmoji, Connection, ContainerComponent, DMChannel, DMChannelMixin, DataTemplatePropertyName, Embed, EmbedAuthor, EmbedField, EmbedFooter, EmbedImage, EmbedProvider, EmbedThumbnail, EmbedVideo, Emoji, Entitlement, type EnumLike, FileComponent, FileUploadComponent, ForumChannel, ForumTag, GroupDMChannel, GroupDMMixin, GuildChannelMixin, type If, InteractionMetadata, type InteractionMetadataType, InteractiveButtonComponent, Invite, LabeledButtonComponent, LinkButtonComponent, MediaChannel, MediaGalleryComponent, MediaGalleryItem, MentionableSelectMenuComponent, type MergePrototype, type MergePrototypes, Message, MessageActivity, MessageCall, MessageComponentInteractionMetadata, MessageFlagsBitField, MessageReference, Mixin, type MixinBase, type MixinTypes, type Mixinable, ModalSubmitInteractionMetadata, type NonAbstract, OptimizeDataPropertyName, type OptionalPropertyNames, type PartialChannel, type Partialize, PermissionOverwrite, PermissionsBitField, Poll, PollAnswer, PollAnswerCount, PollMedia, PollResults, PremiumButtonComponent, PrivateThreadChannel, PublicThreadChannel, Reaction, ReactionCountDetails, type RecursiveReadonlyArray, type ReplaceOmittedWithUnknown, ResolvedInteractionData, RoleSelectMenuComponent, RoleSubscriptionData, SectionComponent, SelectMenuComponent, SelectMenuDefaultValue, SeparatorComponent, StageChannel, Sticker, StringSelectMenuComponent, StringSelectMenuOption, Structure, TextChannel, TextChannelMixin, TextDisplayComponent, TextInputComponent, ThreadChannelMixin, ThreadMetadata, ThreadOnlyChannelMixin, ThumbnailComponent, UnfurledMediaItem, User, UserSelectMenuComponent, VoiceChannel, VoiceChannelMixin, dateToDiscordISOTimestamp, extendTemplate };
3758
+ export { type APIActualInvite, ActionRowComponent, AnnouncementChannel, AnnouncementThreadChannel, ApplicationCommandInteractionMetadata, AppliedTagsMixin, Attachment, AttachmentFlagsBitField, AutoModerationAction, AutoModerationActionMetadata, AutoModerationRule, AutoModerationRuleTriggerMetadata, AvatarDecorationData, BitField, type BitFieldResolvable, ButtonComponent, type ButtonDataType, CategoryChannel, Channel, type ChannelDataType, ChannelFlagsBitField, ChannelMention, ChannelOwnerMixin, ChannelParentMixin, ChannelPermissionMixin, ChannelPinMixin, ChannelSelectMenuComponent, ChannelSlowmodeMixin, ChannelTopicMixin, ChannelWebhookMixin, type CollapseUnion, Component, type ComponentDataType, ComponentEmoji, Connection, ContainerComponent, DMChannel, DMChannelMixin, DataTemplatePropertyName, Embed, EmbedAuthor, EmbedField, EmbedFooter, EmbedImage, EmbedProvider, EmbedThumbnail, EmbedVideo, Emoji, Entitlement, type EnumLike, FileComponent, FileUploadComponent, ForumChannel, ForumTag, GroupDMChannel, GroupDMMixin, GuildChannelMixin, type If, InteractionMetadata, type InteractionMetadataType, InteractiveButtonComponent, Invite, LabeledButtonComponent, LinkButtonComponent, MediaChannel, MediaGalleryComponent, MediaGalleryItem, MentionableSelectMenuComponent, type MergePrototype, type MergePrototypes, Message, MessageActivity, MessageCall, MessageComponentInteractionMetadata, MessageFlagsBitField, MessageReference, Mixin, type MixinBase, type MixinTypes, type Mixinable, ModalSubmitInteractionMetadata, type NonAbstract, OptimizeDataPropertyName, type OptionalPropertyNames, type PartialChannel, type Partialize, PermissionOverwrite, PermissionsBitField, Poll, PollAnswer, PollAnswerCount, PollMedia, PollResults, PremiumButtonComponent, PrivateThreadChannel, PublicThreadChannel, Reaction, ReactionCountDetails, type RecursiveReadonlyArray, type ReplaceOmittedWithUnknown, ResolvedInteractionData, RoleSelectMenuComponent, RoleSubscriptionData, SKU, SKUFlagsBitField, SectionComponent, SelectMenuComponent, SelectMenuDefaultValue, SeparatorComponent, SoundboardSound, StageChannel, StageInstance, Sticker, StickerPack, StringSelectMenuComponent, StringSelectMenuOption, Structure, Subscription, Team, TeamMember, TextChannel, TextChannelMixin, TextDisplayComponent, TextInputComponent, ThreadChannelMixin, ThreadMetadata, ThreadOnlyChannelMixin, ThumbnailComponent, UnfurledMediaItem, User, UserSelectMenuComponent, VoiceChannel, VoiceChannelMixin, VoiceRegion, VoiceState, dateToDiscordISOTimestamp, extendTemplate };