seyfert
Version:
The most advanced framework for discord bots
151 lines (150 loc) • 10.2 kB
TypeScript
import type { RestToKeys } from '../common';
import type { APIAuditLogEntry, APIAutoModerationRule, APIChannel, APIEntitlement, APIGuild, APIGuildMember, APIGuildScheduledEvent, APIStageInstance, APISubscription, APIUser, GatewayActivity, GatewayAutoModerationActionExecutionDispatchData, GatewayChannelPinsUpdateDispatchData, GatewayChannelUpdateDispatchData, GatewayEntitlementCreateDispatchData, GatewayGuildBanAddDispatchData, GatewayGuildBanRemoveDispatchData, GatewayGuildCreateDispatchData, GatewayGuildDeleteDispatchData, GatewayGuildEmojisUpdateDispatchData, GatewayGuildIntegrationsUpdateDispatchData, GatewayGuildMemberAddDispatchData, GatewayGuildMemberRemoveDispatchData, GatewayGuildMemberUpdateDispatchData, GatewayGuildMembersChunkDispatchData, GatewayGuildRoleCreateDispatchData, GatewayGuildRoleDeleteDispatchData, GatewayGuildRoleUpdateDispatchData, GatewayGuildScheduledEventUserRemoveDispatchData, GatewayGuildSoundboardSoundDeleteDispatchData, GatewayGuildSoundboardSoundsUpdateDispatchData, GatewayGuildStickersUpdateDispatchData, GatewayIntegrationCreateDispatchData, GatewayIntegrationDeleteDispatchData, GatewayInteractionCreateDispatchData, GatewayInviteCreateDispatchData, GatewayInviteDeleteDispatchData, GatewayMessageCreateDispatchData, GatewayMessageDeleteBulkDispatchData, GatewayMessageDeleteDispatchData, GatewayMessagePollVoteDispatchData, GatewayMessageReactionAddDispatchData, GatewayMessageReactionRemoveAllDispatchData, GatewayMessageReactionRemoveDispatchData, GatewayMessageReactionRemoveEmojiDispatchData, GatewayMessageUpdateDispatchData, GatewayPresenceUpdateData, GatewayPresenceUpdateDispatchData, GatewayReadyDispatchData, GatewayRequestGuildMembersDataWithQuery, GatewayRequestGuildMembersDataWithUserIds, GatewaySoundboardSoundsDispatchData, GatewayThreadCreateDispatchData, GatewayThreadDeleteDispatchData, GatewayThreadListSyncDispatchData, GatewayThreadMemberUpdateDispatchData, GatewayThreadMembersUpdateDispatchData, GatewayTypingStartDispatchData, GatewayUserUpdateDispatchData, GatewayVoiceChannelEffectSendDispachData, GatewayVoiceServerUpdateDispatchData, GatewayVoiceStateUpdateData, GatewayWebhooksUpdateDispatchData, PresenceUpdateStatus } from '../types';
import { GatewayDispatchEvents } from '../types';
import type { APISoundBoard } from '../types/payloads/soundboard';
/** https://discord.com/developers/docs/topics/gateway-events#update-presence */
export interface StatusUpdate {
/** The user's activities */
activities?: Omit<GatewayActivity, 'created_at' | 'id'>[];
/** The user's new status */
status: PresenceUpdateStatus;
}
/** https://discord.com/developers/docs/topics/gateway#update-voice-state */
export interface UpdateVoiceState {
/** id of the guild */
guild_id: string;
/** id of the voice channel client wants to join (null if disconnecting) */
channel_id: string | null;
/** Is the client muted */
self_mute: boolean;
/** Is the client deafened */
self_deaf: boolean;
}
export type ShardStatusUpdate = Pick<GatewayPresenceUpdateData, 'activities' | 'status'>;
export interface RequestGuildMembersOptions extends GatewayRequestGuildMembersDataWithQuery, GatewayRequestGuildMembersDataWithUserIds {
}
export interface GatewayMemberRequest {
/** The unique nonce for this request. */
nonce: string;
/** The resolver handler to run when all members arrive. */
resolve: (value: APIGuildMember[] | PromiseLike<APIGuildMember[]>) => void;
/** The members that have already arrived for this request. */
members: APIGuildMember[];
}
export type RawClientUser = {
bot: true;
} & APIUser;
export interface Events {
[]: GatewayReadyDispatchData & {
user: RawClientUser;
};
[]: GatewayChannelUpdateDispatchData;
[]: GatewayAutoModerationActionExecutionDispatchData;
[]: GatewayThreadCreateDispatchData;
[]: GatewayThreadDeleteDispatchData;
[]: GatewayThreadDeleteDispatchData;
[]: GatewayThreadListSyncDispatchData;
[]: GatewayThreadMemberUpdateDispatchData;
[]: GatewayThreadMembersUpdateDispatchData;
[]: GatewayChannelPinsUpdateDispatchData;
[]: GatewayGuildCreateDispatchData;
[]: APIGuild;
[]: GatewayGuildDeleteDispatchData;
[]: APIAuditLogEntry;
[]: GatewayGuildBanAddDispatchData;
[]: GatewayGuildBanRemoveDispatchData;
[]: GatewayGuildEmojisUpdateDispatchData;
[]: GatewayGuildStickersUpdateDispatchData;
[]: GatewayGuildIntegrationsUpdateDispatchData;
[]: GatewayGuildSoundboardSoundsUpdateDispatchData;
[]: GatewayGuildSoundboardSoundDeleteDispatchData;
[]: GatewaySoundboardSoundsDispatchData;
[]: GatewayGuildMemberAddDispatchData;
[]: GatewayGuildMemberRemoveDispatchData;
[]: GatewayGuildMemberUpdateDispatchData;
[]: GatewayGuildMembersChunkDispatchData;
[]: GatewayGuildRoleCreateDispatchData;
[]: GatewayGuildRoleUpdateDispatchData;
[]: GatewayGuildRoleDeleteDispatchData;
[]: GatewayIntegrationDeleteDispatchData;
[]: GatewayInviteCreateDispatchData;
[]: GatewayInviteDeleteDispatchData;
[]: GatewayMessageCreateDispatchData;
[]: GatewayMessageUpdateDispatchData;
[]: GatewayMessageDeleteDispatchData;
[]: GatewayMessageDeleteBulkDispatchData;
[]: GatewayMessageReactionAddDispatchData;
[]: GatewayMessageReactionRemoveDispatchData;
[]: GatewayMessageReactionRemoveAllDispatchData;
[]: GatewayMessageReactionRemoveEmojiDispatchData;
[]: GatewayPresenceUpdateDispatchData;
[]: GatewayTypingStartDispatchData;
[]: GatewayUserUpdateDispatchData;
[]: GatewayVoiceChannelEffectSendDispachData;
[]: GatewayVoiceStateUpdateData;
[]: GatewayVoiceServerUpdateDispatchData;
[]: GatewayWebhooksUpdateDispatchData;
[]: GatewayInteractionCreateDispatchData;
[]: GatewayEntitlementCreateDispatchData;
}
export type StageSameEvents = RestToKeys<[
APIStageInstance,
GatewayDispatchEvents.StageInstanceCreate,
GatewayDispatchEvents.StageInstanceUpdate,
GatewayDispatchEvents.StageInstanceDelete
]>;
export type PollVoteSameEvents = RestToKeys<[
GatewayMessagePollVoteDispatchData,
GatewayDispatchEvents.MessagePollVoteRemove,
GatewayDispatchEvents.MessagePollVoteAdd
]>;
export type IntegrationSameEvents = RestToKeys<[
GatewayIntegrationCreateDispatchData,
GatewayDispatchEvents.IntegrationCreate,
GatewayDispatchEvents.IntegrationUpdate
]>;
export type GuildScheduledUserSameEvents = RestToKeys<[
GatewayGuildScheduledEventUserRemoveDispatchData,
GatewayDispatchEvents.GuildScheduledEventUserRemove,
GatewayDispatchEvents.GuildScheduledEventUserAdd
]>;
export type GuildScheduledSameEvents = RestToKeys<[
APIGuildScheduledEvent,
GatewayDispatchEvents.GuildScheduledEventCreate,
GatewayDispatchEvents.GuildScheduledEventDelete,
GatewayDispatchEvents.GuildScheduledEventUpdate
]>;
export type ChannelSameEvents = RestToKeys<[
APIChannel,
GatewayDispatchEvents.ChannelCreate,
GatewayDispatchEvents.ChannelDelete,
GatewayDispatchEvents.ChannelUpdate
]>;
export type AutoModetaractionRuleEvents = RestToKeys<[
APIAutoModerationRule,
GatewayDispatchEvents.AutoModerationRuleCreate,
GatewayDispatchEvents.AutoModerationRuleDelete,
GatewayDispatchEvents.AutoModerationRuleUpdate
]>;
export type EntitlementEvents = RestToKeys<[
APIEntitlement,
GatewayDispatchEvents.EntitlementDelete,
GatewayDispatchEvents.EntitlementUpdate
]>;
export type SubscriptionEvents = RestToKeys<[
APISubscription,
GatewayDispatchEvents.SubscriptionCreate,
GatewayDispatchEvents.SubscriptionDelete,
GatewayDispatchEvents.SubscriptionUpdate
]>;
export type SoundboardSoundsEvents = RestToKeys<[
APISoundBoard,
GatewayDispatchEvents.GuildSoundboardSoundCreate,
GatewayDispatchEvents.GuildSoundboardSoundUpdate
]>;
export type NormalizeEvents = Events & AutoModetaractionRuleEvents & ChannelSameEvents & GuildScheduledSameEvents & GuildScheduledUserSameEvents & IntegrationSameEvents & EntitlementEvents & PollVoteSameEvents & StageSameEvents & SubscriptionEvents & SoundboardSoundsEvents & {
RAW: GatewayDispatchEvents;
};
export type GatewayEvents = {
[]: NormalizeEvents[x];
};