@@ -175,6 +175,9 @@ import {
175
175
SKUType ,
176
176
APIEntitlement ,
177
177
EntitlementType ,
178
+ APIPoll ,
179
+ PollLayoutType ,
180
+ APIPollAnswer ,
178
181
} from 'discord-api-types/v10' ;
179
182
import { ChildProcess } from 'node:child_process' ;
180
183
import { EventEmitter } from 'node:events' ;
@@ -2586,6 +2589,39 @@ export class Presence extends Base {
2586
2589
public equals ( presence : Presence ) : boolean ;
2587
2590
}
2588
2591
2592
+ export interface PollQuestionMedia {
2593
+ text : string ;
2594
+ }
2595
+
2596
+ export class Poll extends Base {
2597
+ private constructor ( client : Client < true > , data : APIPoll , message : Message ) ;
2598
+ public readonly message : Message ;
2599
+ public question : PollQuestionMedia ;
2600
+ public answers : Collection < number , PollAnswer > ;
2601
+ public expiresTimestamp : number ;
2602
+ public get expiresAt ( ) : Date ;
2603
+ public allowMultiselect : boolean ;
2604
+ public layoutType : PollLayoutType ;
2605
+ public resultsFinalized : boolean ;
2606
+ public end ( ) : Promise < Message > ;
2607
+ }
2608
+
2609
+ export interface FetchPollVotersOptions {
2610
+ after ?: Snowflake ;
2611
+ limit ?: number ;
2612
+ }
2613
+
2614
+ export class PollAnswer extends Base {
2615
+ private constructor ( client : Client < true > , data : APIPollAnswer & { count ?: number } , poll : Poll ) ;
2616
+ private _emoji : APIPartialEmoji | null ;
2617
+ public readonly poll : Poll ;
2618
+ public id : number ;
2619
+ public text : string | null ;
2620
+ public voteCount : number ;
2621
+ public get emoji ( ) : GuildEmoji | Emoji | null ;
2622
+ public fetchVoters ( options ?: FetchPollVotersOptions ) : Promise < Collection < Snowflake , User > > ;
2623
+ }
2624
+
2589
2625
export class ReactionCollector extends Collector < Snowflake | string , MessageReaction , [ User ] > {
2590
2626
public constructor ( message : Message , options ?: ReactionCollectorOptions ) ;
2591
2627
private _handleChannelDeletion ( channel : NonThreadGuildBasedChannel ) : void ;
@@ -3929,6 +3965,8 @@ export enum DiscordjsErrorCodes {
3929
3965
EntitlementCreateInvalidOwner = 'EntitlementCreateInvalidOwner' ,
3930
3966
3931
3967
BulkBanUsersOptionEmpty = 'BulkBanUsersOptionEmpty' ,
3968
+
3969
+ PollAlreadyExpired = 'PollAlreadyExpired' ,
3932
3970
}
3933
3971
3934
3972
export class DiscordjsError extends Error {
@@ -4977,6 +5015,19 @@ export interface BulkBanResult {
4977
5015
failedUsers : readonly Snowflake [ ] ;
4978
5016
}
4979
5017
5018
+ export interface PollData {
5019
+ question : PollQuestionMedia ;
5020
+ answers : readonly PollAnswerData [ ] ;
5021
+ duration : number ;
5022
+ allowMultiselect : boolean ;
5023
+ layoutType ?: PollLayoutType ;
5024
+ }
5025
+
5026
+ export interface PollAnswerData {
5027
+ text : string ;
5028
+ emoji ?: EmojiIdentifierResolvable ;
5029
+ }
5030
+
4980
5031
export type Base64Resolvable = Buffer | Base64String ;
4981
5032
4982
5033
export type Base64String = string ;
@@ -5146,6 +5197,8 @@ export interface ClientEvents {
5146
5197
inviteDelete : [ invite : Invite ] ;
5147
5198
messageCreate : [ message : Message ] ;
5148
5199
messageDelete : [ message : Message | PartialMessage ] ;
5200
+ messagePollVoteAdd : [ pollAnswer : PollAnswer , userId : Snowflake ] ;
5201
+ messagePollVoteRemove : [ pollAnswer : PollAnswer , userId : Snowflake ] ;
5149
5202
messageReactionRemoveAll : [
5150
5203
message : Message | PartialMessage ,
5151
5204
reactions : ReadonlyCollection < string | Snowflake , MessageReaction > ,
@@ -5372,6 +5425,8 @@ export enum Events {
5372
5425
MessageDelete = 'messageDelete' ,
5373
5426
MessageUpdate = 'messageUpdate' ,
5374
5427
MessageBulkDelete = 'messageDeleteBulk' ,
5428
+ MessagePollVoteAdd = 'messagePollVoteAdd' ,
5429
+ MessagePollVoteRemove = 'messagePollVoteRemove' ,
5375
5430
MessageReactionAdd = 'messageReactionAdd' ,
5376
5431
MessageReactionRemove = 'messageReactionRemove' ,
5377
5432
MessageReactionRemoveAll = 'messageReactionRemoveAll' ,
@@ -6244,6 +6299,7 @@ export interface BaseMessageOptions {
6244
6299
| ActionRowData < MessageActionRowComponentData | MessageActionRowComponentBuilder >
6245
6300
| APIActionRowComponent < APIMessageActionRowComponent >
6246
6301
) [ ] ;
6302
+ poll ?: PollData ;
6247
6303
}
6248
6304
6249
6305
export interface MessageCreateOptions extends BaseMessageOptions {
0 commit comments