diff --git a/src/types/invites/invite.ts b/src/types/invites/invite.ts index 422da5f74..3808de739 100644 --- a/src/types/invites/invite.ts +++ b/src/types/invites/invite.ts @@ -3,6 +3,7 @@ import { Guild } from "../guilds/guild.ts"; import { Application } from "../applications/application.ts"; import { User } from "../users/user.ts"; import { DiscordTargetTypes } from "./target_types.ts"; +import { InviteStageInstance } from "./invite_stage_instance.ts"; /** https://discord.com/developers/docs/resources/invite#invite-object */ export interface Invite { @@ -26,4 +27,6 @@ export interface Invite { approximateMemberCount?: number; /** The expiration date of this invite, returned from the `GET /invites/` endpoint when `with_expiration` is `true` */ expiresAt?: string | null; + /** Stage instance data if there is a public Stage instance in the Stage channel this invite is for */ + stageInstance?: InviteStageInstance; } diff --git a/src/types/invites/invite_stage_instance.ts b/src/types/invites/invite_stage_instance.ts new file mode 100644 index 000000000..8ad8da371 --- /dev/null +++ b/src/types/invites/invite_stage_instance.ts @@ -0,0 +1,12 @@ +import { GuildMember } from "../members/guild_member.ts"; + +export interface InviteStageInstance { + /** The members speaking in the Stage */ + members: Partial[]; + /** The number of users in the Stage */ + participantCount: number; + /** The number of users speaking in the Stage */ + speakerCount: number; + /** The topic of the Stage instance (1-120 characters) */ + topic: string; +}