UNPKG

detritus-client

Version:

A Typescript NodeJS library to interact with Discord's API, both Rest and Gateway.

559 lines 82.6 kB
import { ClientOptions as RestOptions } from 'detritus-client-rest'; import { Gateway } from 'detritus-client-socket'; import { EventSpewer, EventSubscription } from 'detritus-utils'; import { ClusterClient } from './clusterclient'; import { CommandClient } from './commandclient'; import { RestClient } from './rest'; import { InteractionCommandClient } from './interactioncommandclient'; import { ClientEvents, ImageFormats } from './constants'; import { GatewayHandler, GatewayHandlerOptions } from './gateway/handler'; import { GatewayClientEvents } from './gateway/clientevents'; import { BaseCollection } from './collections/basecollection'; import { BaseSet } from './collections/baseset'; import { Applications, ApplicationsOptions, Channels, ChannelsOptions, ConnectedAccounts, ConnectedAccountsOptions, Emojis, EmojisOptions, Guilds, GuildsOptions, Interactions, InteractionsOptions, Members, MembersOptions, Messages, MessagesOptions, Notes, NotesOptions, Presences, PresencesOptions, Relationships, RelationshipsOptions, Roles, RolesOptions, Sessions, SessionsOptions, StageInstances, StageInstancesOptions, Stickers, StickersOptions, TypingCollection, TypingOptions, Users, UsersOptions, VoiceCalls, VoiceCallsOptions, VoiceConnections, VoiceConnectionsOptions, VoiceStates, VoiceStatesOptions } from './collections'; import { VoiceConnection, VoiceConnectionOptions } from './media/voiceconnection'; import { Member, Oauth2Application, Presence, User, UserMe } from './structures'; import { Components, ComponentActionRow, ComponentActionRowData } from './utils'; export interface VoiceConnectObject { connection: VoiceConnection; isNew: boolean; } interface GatewayOptions extends Gateway.SocketOptions, GatewayHandlerOptions { } export interface ShardClientCacheOptions { applications?: ApplicationsOptions | boolean; channels?: ChannelsOptions | boolean; connectedAccounts?: ConnectedAccountsOptions | boolean; emojis?: EmojisOptions | boolean; guilds?: GuildsOptions | boolean; interactions?: InteractionsOptions | boolean; members?: MembersOptions | boolean; messages?: MessagesOptions | boolean; notes?: NotesOptions | boolean; presences?: PresencesOptions | boolean; relationships?: RelationshipsOptions | boolean; roles?: RolesOptions | boolean; sessions?: SessionsOptions | boolean; stageInstances?: StageInstancesOptions | boolean; stickers?: StickersOptions | boolean; typings?: TypingOptions | boolean; users?: UsersOptions | boolean; voiceCalls?: VoiceCallsOptions | boolean; voiceConnections?: VoiceConnectionsOptions | boolean; voiceStates?: VoiceStatesOptions | boolean; } export interface ShardClientPassOptions { cluster?: ClusterClient; commandClient?: CommandClient; interactionCommandClient?: InteractionCommandClient; applications?: Applications; channels?: Channels; connectedAccounts?: ConnectedAccounts; emojis?: Emojis; guilds?: Guilds; interactions?: Interactions; members?: Members; messages?: Messages; notes?: Notes; presences?: Presences; relationships?: Relationships; roles?: Roles; sessions?: Sessions; stageInstances?: StageInstances; stickers?: Stickers; typings?: TypingCollection; users?: Users; voiceCalls?: VoiceCalls; voiceConnections?: VoiceConnections; voiceStates?: VoiceStates; } export interface ShardClientOptions { cache?: ShardClientCacheOptions | boolean; gateway?: GatewayOptions; imageFormat?: ImageFormats | string; isBot?: boolean; rest?: RestOptions; pass?: ShardClientPassOptions; } export interface ShardClientRunOptions { url?: string; wait?: boolean; } export interface VoiceConnectOptions extends VoiceConnectionOptions { deaf?: boolean; forceMode?: string; mute?: boolean; receive?: boolean; selfDeaf?: boolean; selfMute?: boolean; selfVideo?: boolean; timeout?: number; video?: boolean; wait?: boolean; } /** * Shard Client, represents one gateway connection * @category Clients */ export declare class ShardClient extends EventSpewer { /** * @ignore */ _isBot: boolean; _killed: boolean; application: Oauth2Application | null; cluster: ClusterClient | null; commandClient: CommandClient | null; interactionCommandClient: InteractionCommandClient | null; /** Default Image Format to use for any url getters*/ imageFormat: ImageFormats; /** `detritus-client-socket`'s Gateway Socket */ gateway: Gateway.Socket; /** Our Dispatch Handler */ gatewayHandler: GatewayHandler; /** * If this is a bot, this will be filled with it's application owner or all of the application's team owners * If this is a user, this will only include the user object * Only fills once we receive the Ready payload */ owners: BaseCollection<string, User>; /** If the client is ran or not */ ran: boolean; /** (Users only) if the client requires an action (like the captcha overlay) */ requiredAction?: null | string; /** `detritus-client-rest`'s Rest Client, but wrapped over */ rest: RestClient; /** our token */ token: string; /** Us, only fills once we received the Ready payload from the gateway */ user: null | UserMe; readonly applications: Applications; readonly channels: Channels; readonly connectedAccounts: ConnectedAccounts; readonly emojis: Emojis; readonly guilds: Guilds; readonly interactions: Interactions; readonly members: Members; readonly messages: Messages; readonly notes: Notes; readonly presences: Presences; readonly relationships: Relationships; readonly roles: Roles; readonly sessions: Sessions; readonly stageInstances: StageInstances; readonly stickers: Stickers; readonly typings: TypingCollection; readonly users: Users; readonly voiceCalls: VoiceCalls; readonly voiceConnections: VoiceConnections; readonly voiceStates: VoiceStates; constructor(token: string, options?: ShardClientOptions); get applicationId(): string; get clientId(): string; get isBot(): boolean; get killed(): boolean; get shardCount(): number; get shardId(): number; get userId(): string; _mergeOauth2Application(data: any): Oauth2Application; hookComponents(listenerId: string, components: Components | Array<ComponentActionRowData | ComponentActionRow>, timeout?: number): Components; isOwner(userId: string): boolean; kill(error?: Error): void; ping(): Promise<{ gateway: number; rest: number; }>; requestGuildMembers(guildId: string, oldOptions: { limit?: number; presences?: boolean; query: string; timeout?: number; userIds?: Array<string>; }): Promise<{ members: BaseCollection<string, Member>; nonce: string; notFound: BaseSet<string>; presences: BaseCollection<string, Presence>; }>; reset(applications?: boolean): void; run(options?: ShardClientRunOptions): Promise<ShardClient>; /** * * @param guildId Guild Id you want to connect to, if a user and wanting to connect to a Dm Channel, keep this blank * @param channelId Channel Id you want to connect to or move to * @param options Options to pass into the `detritus-client-socket`'s gateway's voiceConnect * @returns Returns a promise that resolves into a Voice Connection object and an isNew variable. * isNew is used to see if the connection was reused (e.g. changing channels) so you can put listeners on or not */ voiceConnect(guildId?: null | string, channelId?: null | string, options?: VoiceConnectOptions): Promise<VoiceConnectObject | null>; toString(): string; on(event: string | symbol, listener: (...args: any[]) => void): this; on(event: ClientEvents.ACTIVITY_JOIN_INVITE, listener: (payload: GatewayClientEvents.ActivityJoinInvite) => any): this; on(event: 'activityJoinInvite', listener: (payload: GatewayClientEvents.ActivityJoinInvite) => any): this; on(event: ClientEvents.ACTIVITY_JOIN_REQUEST, listener: (payload: GatewayClientEvents.ActivityJoinRequest) => any): this; on(event: 'activityJoinRequest', listener: (payload: GatewayClientEvents.ActivityJoinRequest) => any): this; on(event: ClientEvents.ACTIVITY_START, listener: (payload: GatewayClientEvents.ActivityStart) => any): this; on(event: 'activityStart', listener: (payload: GatewayClientEvents.ActivityStart) => any): this; on(event: ClientEvents.APPLICATION_COMMAND_CREATE, listener: (payload: GatewayClientEvents.ApplicationCommandCreate) => any): this; on(event: 'applicationCommandCreate', listener: (payload: GatewayClientEvents.ApplicationCommandCreate) => any): this; on(event: ClientEvents.APPLICATION_COMMAND_DELETE, listener: (payload: GatewayClientEvents.ApplicationCommandDelete) => any): this; on(event: 'applicationCommandDelete', listener: (payload: GatewayClientEvents.ApplicationCommandDelete) => any): this; on(event: ClientEvents.APPLICATION_COMMAND_UPDATE, listener: (payload: GatewayClientEvents.ApplicationCommandUpdate) => any): this; on(event: 'applicationCommandUpdate', listener: (payload: GatewayClientEvents.ApplicationCommandUpdate) => any): this; on(event: ClientEvents.BRAINTREE_POPUP_BRIDGE_CALLBACK, listener: (payload: GatewayClientEvents.BraintreePopupBridgeCallback) => any): this; on(event: 'braintreePopupBridgeCallback', listener: (payload: GatewayClientEvents.BraintreePopupBridgeCallback) => any): this; on(event: ClientEvents.CALL_CREATE, listener: (payload: GatewayClientEvents.CallCreate) => any): this; on(event: 'callCreate', listener: (payload: GatewayClientEvents.CallCreate) => any): this; on(event: ClientEvents.CALL_DELETE, listener: (payload: GatewayClientEvents.CallDelete) => any): this; on(event: 'callDelete', listener: (payload: GatewayClientEvents.CallDelete) => any): this; on(event: ClientEvents.CALL_UPDATE, listener: (payload: GatewayClientEvents.CallUpdate) => any): this; on(event: 'callUpdate', listener: (payload: GatewayClientEvents.CallUpdate) => any): this; on(event: ClientEvents.CHANNEL_CREATE, listener: (payload: GatewayClientEvents.ChannelCreate) => any): this; on(event: 'channelCreate', listener: (payload: GatewayClientEvents.ChannelCreate) => any): this; on(event: ClientEvents.CHANNEL_DELETE, listener: (payload: GatewayClientEvents.ChannelDelete) => any): this; on(event: 'channelDelete', listener: (payload: GatewayClientEvents.ChannelDelete) => any): this; on(event: ClientEvents.CHANNEL_UPDATE, listener: (payload: GatewayClientEvents.ChannelUpdate) => any): this; on(event: 'channelUpdate', listener: (payload: GatewayClientEvents.ChannelUpdate) => any): this; on(event: ClientEvents.CHANNEL_PINS_ACK, listener: (payload: GatewayClientEvents.ChannelPinsAck) => any): this; on(event: 'channelPinsAck', listener: (payload: GatewayClientEvents.ChannelPinsAck) => any): this; on(event: ClientEvents.CHANNEL_PINS_UPDATE, listener: (payload: GatewayClientEvents.ChannelPinsUpdate) => any): this; on(event: 'channelPinsUpdate', listener: (payload: GatewayClientEvents.ChannelPinsUpdate) => any): this; on(event: ClientEvents.CHANNEL_RECIPIENT_ADD, listener: (payload: GatewayClientEvents.ChannelRecipientAdd) => any): this; on(event: 'channelRecipientAdd', listener: (payload: GatewayClientEvents.ChannelRecipientAdd) => any): this; on(event: ClientEvents.CHANNEL_RECIPIENT_REMOVE, listener: (payload: GatewayClientEvents.ChannelRecipientRemove) => any): this; on(event: 'channelRecipientRemove', listener: (payload: GatewayClientEvents.ChannelRecipientRemove) => any): this; on(event: ClientEvents.ENTITLEMENT_CREATE, listener: (payload: GatewayClientEvents.EntitlementCreate) => any): this; on(event: 'entitlementCreate', listener: (payload: GatewayClientEvents.EntitlementCreate) => any): this; on(event: ClientEvents.ENTITLEMENT_DELETE, listener: (payload: GatewayClientEvents.EntitlementDelete) => any): this; on(event: 'entitlementDelete', listener: (payload: GatewayClientEvents.EntitlementDelete) => any): this; on(event: ClientEvents.ENTITLEMENT_UPDATE, listener: (payload: GatewayClientEvents.EntitlementUpdate) => any): this; on(event: 'entitlementUpdate', listener: (payload: GatewayClientEvents.EntitlementUpdate) => any): this; on(event: ClientEvents.FRIEND_SUGGESTION_CREATE, listener: (payload: GatewayClientEvents.FriendSuggestionCreate) => any): this; on(event: 'friendSuggestionCreate', listener: (payload: GatewayClientEvents.FriendSuggestionCreate) => any): this; on(event: ClientEvents.FRIEND_SUGGESTION_DELETE, listener: (payload: GatewayClientEvents.FriendSuggestionDelete) => any): this; on(event: 'friendSuggestionDelete', listener: (payload: GatewayClientEvents.FriendSuggestionDelete) => any): this; on(event: ClientEvents.GATEWAY_READY, listener: (payload: GatewayClientEvents.GatewayReady) => any): this; on(event: 'gatewayReady', listener: (payload: GatewayClientEvents.GatewayReady) => any): this; on(event: ClientEvents.GATEWAY_RESUMED, listener: (payload: GatewayClientEvents.GatewayResumed) => any): this; on(event: 'gatewayResumed', listener: (payload: GatewayClientEvents.GatewayResumed) => any): this; on(event: ClientEvents.GIFT_CODE_UPDATE, listener: (payload: GatewayClientEvents.GiftCodeUpdate) => any): this; on(event: 'giftCodeUpdate', listener: (payload: GatewayClientEvents.GiftCodeUpdate) => any): this; on(event: ClientEvents.GUILD_BAN_ADD, listener: (payload: GatewayClientEvents.GuildBanAdd) => any): this; on(event: 'guildBanAdd', listener: (payload: GatewayClientEvents.GuildBanAdd) => any): this; on(event: ClientEvents.GUILD_BAN_REMOVE, listener: (payload: GatewayClientEvents.GuildBanRemove) => any): this; on(event: 'guildBanRemove', listener: (payload: GatewayClientEvents.GuildBanRemove) => any): this; on(event: ClientEvents.GUILD_CREATE, listener: (payload: GatewayClientEvents.GuildCreate) => any): this; on(event: 'guildCreate', listener: (payload: GatewayClientEvents.GuildCreate) => any): this; on(event: ClientEvents.GUILD_DELETE, listener: (payload: GatewayClientEvents.GuildDelete) => any): this; on(event: 'guildDelete', listener: (payload: GatewayClientEvents.GuildDelete) => any): this; on(event: ClientEvents.GUILD_EMOJIS_UPDATE, listener: (payload: GatewayClientEvents.GuildEmojisUpdate) => any): this; on(event: 'guildEmojisUpdate', listener: (payload: GatewayClientEvents.GuildEmojisUpdate) => any): this; on(event: ClientEvents.GUILD_INTEGRATIONS_UPDATE, listener: (payload: GatewayClientEvents.GuildIntegrationsUpdate) => any): this; on(event: 'guildIntegrationsUpdate', listener: (payload: GatewayClientEvents.GuildIntegrationsUpdate) => any): this; on(event: ClientEvents.GUILD_MEMBER_ADD, listener: (payload: GatewayClientEvents.GuildMemberAdd) => any): this; on(event: 'guildMemberAdd', listener: (payload: GatewayClientEvents.GuildMemberAdd) => any): this; on(event: ClientEvents.GUILD_MEMBER_LIST_UPDATE, listener: (payload: GatewayClientEvents.GuildMemberListUpdate) => any): this; on(event: 'guildMemberListUpdate', listener: (payload: GatewayClientEvents.GuildMemberListUpdate) => any): this; on(event: ClientEvents.GUILD_MEMBER_REMOVE, listener: (payload: GatewayClientEvents.GuildMemberRemove) => any): this; on(event: 'guildMemberRemove', listener: (payload: GatewayClientEvents.GuildMemberRemove) => any): this; on(event: ClientEvents.GUILD_MEMBER_UPDATE, listener: (payload: GatewayClientEvents.GuildMemberUpdate) => any): this; on(event: 'guildMemberUpdate', listener: (payload: GatewayClientEvents.GuildMemberUpdate) => any): this; on(event: ClientEvents.GUILD_MEMBERS_CHUNK, listener: (payload: GatewayClientEvents.GuildMembersChunk) => any): this; on(event: 'guildMembersChunk', listener: (payload: GatewayClientEvents.GuildMembersChunk) => any): this; on(event: ClientEvents.GUILD_READY, listener: (payload: GatewayClientEvents.GuildReady) => any): this; on(event: 'guildReady', listener: (payload: GatewayClientEvents.GuildReady) => any): this; on(event: ClientEvents.GUILD_ROLE_CREATE, listener: (payload: GatewayClientEvents.GuildRoleCreate) => any): this; on(event: 'guildRoleCreate', listener: (payload: GatewayClientEvents.GuildRoleCreate) => any): this; on(event: ClientEvents.GUILD_ROLE_DELETE, listener: (payload: GatewayClientEvents.GuildRoleDelete) => any): this; on(event: 'guildRoleDelete', listener: (payload: GatewayClientEvents.GuildRoleDelete) => any): this; on(event: ClientEvents.GUILD_ROLE_UPDATE, listener: (payload: GatewayClientEvents.GuildRoleUpdate) => any): this; on(event: 'guildRoleUpdate', listener: (payload: GatewayClientEvents.GuildRoleUpdate) => any): this; on(event: ClientEvents.GUILD_STICKERS_UPDATE, listener: (payload: GatewayClientEvents.GuildStickersUpdate) => any): this; on(event: 'guildStickersUpdate', listener: (payload: GatewayClientEvents.GuildStickersUpdate) => any): this; on(event: ClientEvents.GUILD_UPDATE, listener: (payload: GatewayClientEvents.GuildUpdate) => any): this; on(event: 'guildUpdate', listener: (payload: GatewayClientEvents.GuildUpdate) => any): this; on(event: ClientEvents.INTERACTION_CREATE, listener: (payload: GatewayClientEvents.InteractionCreate) => any): this; on(event: 'interactionCreate', listener: (payload: GatewayClientEvents.InteractionCreate) => any): this; on(event: ClientEvents.INVITE_CREATE, listener: (payload: GatewayClientEvents.InviteCreate) => any): this; on(event: 'inviteCreate', listener: (payload: GatewayClientEvents.InviteCreate) => any): this; on(event: ClientEvents.INVITE_DELETE, listener: (payload: GatewayClientEvents.InviteDelete) => any): this; on(event: 'inviteDelete', listener: (payload: GatewayClientEvents.InviteDelete) => any): this; on(event: ClientEvents.LIBRARY_APPLICATION_UPDATE, listener: (payload: GatewayClientEvents.LibraryApplicationUpdate) => any): this; on(event: 'libraryApplicationUpdate', listener: (payload: GatewayClientEvents.LibraryApplicationUpdate) => any): this; on(event: ClientEvents.LOBBY_CREATE, listener: (payload: GatewayClientEvents.LobbyCreate) => any): this; on(event: 'lobbyCreate', listener: (payload: GatewayClientEvents.LobbyCreate) => any): this; on(event: ClientEvents.LOBBY_DELETE, listener: (payload: GatewayClientEvents.LobbyDelete) => any): this; on(event: 'lobbyDelete', listener: (payload: GatewayClientEvents.LobbyDelete) => any): this; on(event: ClientEvents.LOBBY_UPDATE, listener: (payload: GatewayClientEvents.LobbyUpdate) => any): this; on(event: 'lobbyUpdate', listener: (payload: GatewayClientEvents.LobbyUpdate) => any): this; on(event: ClientEvents.LOBBY_MEMBER_CONNECT, listener: (payload: GatewayClientEvents.LobbyMemberConnect) => any): this; on(event: 'lobbyMemberConnect', listener: (payload: GatewayClientEvents.LobbyMemberConnect) => any): this; on(event: ClientEvents.LOBBY_MEMBER_DISCONNECT, listener: (payload: GatewayClientEvents.LobbyMemberDisconnect) => any): this; on(event: 'lobbyMemberDisconnect', listener: (payload: GatewayClientEvents.LobbyMemberDisconnect) => any): this; on(event: ClientEvents.LOBBY_MEMBER_UPDATE, listener: (payload: GatewayClientEvents.LobbyMemberUpdate) => any): this; on(event: 'lobbyMemberUpdate', listener: (payload: GatewayClientEvents.LobbyMemberUpdate) => any): this; on(event: ClientEvents.LOBBY_MESSAGE, listener: (payload: GatewayClientEvents.LobbyMessage) => any): this; on(event: 'lobbyMessage', listener: (payload: GatewayClientEvents.LobbyMessage) => any): this; on(event: ClientEvents.LOBBY_VOICE_SERVER_UPDATE, listener: (payload: GatewayClientEvents.LobbyVoiceServerUpdate) => any): this; on(event: 'lobbyVoiceServerUpdate', listener: (payload: GatewayClientEvents.LobbyVoiceServerUpdate) => any): this; on(event: ClientEvents.LOBBY_VOICE_STATE_UPDATE, listener: (payload: GatewayClientEvents.LobbyVoiceStateUpdate) => any): this; on(event: 'lobbyVoiceStateUpdate', listener: (payload: GatewayClientEvents.LobbyVoiceStateUpdate) => any): this; on(event: ClientEvents.MESSAGE_ACK, listener: (payload: GatewayClientEvents.MessageAck) => any): this; on(event: 'messageAck', listener: (payload: GatewayClientEvents.MessageAck) => any): this; on(event: ClientEvents.MESSAGE_CREATE, listener: (payload: GatewayClientEvents.MessageCreate) => any): this; on(event: 'messageCreate', listener: (payload: GatewayClientEvents.MessageCreate) => any): this; on(event: ClientEvents.MESSAGE_DELETE, listener: (payload: GatewayClientEvents.MessageDelete) => any): this; on(event: 'messageDelete', listener: (payload: GatewayClientEvents.MessageDelete) => any): this; on(event: ClientEvents.MESSAGE_DELETE_BULK, listener: (payload: GatewayClientEvents.MessageDeleteBulk) => any): this; on(event: 'messageDeleteBulk', listener: (payload: GatewayClientEvents.MessageDeleteBulk) => any): this; on(event: ClientEvents.MESSAGE_REACTION_ADD, listener: (payload: GatewayClientEvents.MessageReactionAdd) => any): this; on(event: 'messageReactionAdd', listener: (payload: GatewayClientEvents.MessageReactionAdd) => any): this; on(event: ClientEvents.MESSAGE_REACTION_REMOVE, listener: (payload: GatewayClientEvents.MessageReactionRemove) => any): this; on(event: 'messageReactionRemove', listener: (payload: GatewayClientEvents.MessageReactionRemove) => any): this; on(event: ClientEvents.MESSAGE_REACTION_REMOVE_ALL, listener: (payload: GatewayClientEvents.MessageReactionRemoveAll) => any): this; on(event: 'messageReactionRemoveAll', listener: (payload: GatewayClientEvents.MessageReactionRemoveAll) => any): this; on(event: ClientEvents.MESSAGE_REACTION_REMOVE_EMOJI, listener: (payload: GatewayClientEvents.MessageReactionRemoveEmoji) => any): this; on(event: 'messageReactionRemoveEmoji', listener: (payload: GatewayClientEvents.MessageReactionRemoveEmoji) => any): this; on(event: ClientEvents.MESSAGE_UPDATE, listener: (payload: GatewayClientEvents.MessageUpdate) => any): this; on(event: 'messageUpdate', listener: (payload: GatewayClientEvents.MessageUpdate) => any): this; on(event: ClientEvents.PRESENCES_REPLACE, listener: (payload: GatewayClientEvents.PresencesReplace) => any): this; on(event: 'presencesReplace', listener: (payload: GatewayClientEvents.PresencesReplace) => any): this; on(event: ClientEvents.PRESENCE_UPDATE, listener: (payload: GatewayClientEvents.PresenceUpdate) => any): this; on(event: 'presenceUpdate', listener: (payload: GatewayClientEvents.PresenceUpdate) => any): this; on(event: ClientEvents.RECENT_MENTION_DELETE, listener: (payload: GatewayClientEvents.RecentMentionDelete) => any): this; on(event: 'recentMentionDelete', listener: (payload: GatewayClientEvents.RecentMentionDelete) => any): this; on(event: ClientEvents.RELATIONSHIP_ADD, listener: (payload: GatewayClientEvents.RelationshipAdd) => any): this; on(event: 'relationshipAdd', listener: (payload: GatewayClientEvents.RelationshipAdd) => any): this; on(event: ClientEvents.RELATIONSHIP_REMOVE, listener: (payload: GatewayClientEvents.RelationshipRemove) => any): this; on(event: 'relationshipRemove', listener: (payload: GatewayClientEvents.RelationshipRemove) => any): this; on(event: ClientEvents.SESSIONS_REPLACE, listener: (payload: GatewayClientEvents.SessionsReplace) => any): this; on(event: 'sessionsReplace', listener: (payload: GatewayClientEvents.SessionsReplace) => any): this; on(event: ClientEvents.STAGE_INSTANCE_CREATE, listener: (payload: GatewayClientEvents.StageInstanceCreate) => any): this; on(event: 'stageInstanceCreate', listener: (payload: GatewayClientEvents.StageInstanceCreate) => any): this; on(event: ClientEvents.STAGE_INSTANCE_DELETE, listener: (payload: GatewayClientEvents.StageInstanceDelete) => any): this; on(event: 'stageInstanceDelete', listener: (payload: GatewayClientEvents.StageInstanceDelete) => any): this; on(event: ClientEvents.STAGE_INSTANCE_UPDATE, listener: (payload: GatewayClientEvents.StageInstanceUpdate) => any): this; on(event: 'stageInstanceUpdate', listener: (payload: GatewayClientEvents.StageInstanceUpdate) => any): this; on(event: ClientEvents.STREAM_CREATE, listener: (payload: GatewayClientEvents.StreamCreate) => any): this; on(event: 'streamCreate', listener: (payload: GatewayClientEvents.StreamCreate) => any): this; on(event: ClientEvents.STREAM_DELETE, listener: (payload: GatewayClientEvents.StreamDelete) => any): this; on(event: 'streamDelete', listener: (payload: GatewayClientEvents.StreamDelete) => any): this; on(event: ClientEvents.STREAM_SERVER_UPDATE, listener: (payload: GatewayClientEvents.StreamServerUpdate) => any): this; on(event: 'streamServerUpdate', listener: (payload: GatewayClientEvents.StreamServerUpdate) => any): this; on(event: ClientEvents.STREAM_UPDATE, listener: (payload: GatewayClientEvents.StreamUpdate) => any): this; on(event: 'streamUpdate', listener: (payload: GatewayClientEvents.StreamUpdate) => any): this; on(event: ClientEvents.THREAD_CREATE, listener: (payload: GatewayClientEvents.ThreadCreate) => any): this; on(event: 'threadCreate', listener: (payload: GatewayClientEvents.ThreadCreate) => any): this; on(event: ClientEvents.THREAD_DELETE, listener: (payload: GatewayClientEvents.ThreadDelete) => any): this; on(event: 'threadDelete', listener: (payload: GatewayClientEvents.ThreadDelete) => any): this; on(event: ClientEvents.THREAD_LIST_SYNC, listener: (payload: GatewayClientEvents.ThreadListSync) => any): this; on(event: 'threadListSync', listener: (payload: GatewayClientEvents.ThreadListSync) => any): this; on(event: ClientEvents.THREAD_MEMBER_UPDATE, listener: (payload: GatewayClientEvents.ThreadMemberUpdate) => any): this; on(event: 'threadMemberUpdate', listener: (payload: GatewayClientEvents.ThreadMemberUpdate) => any): this; on(event: ClientEvents.THREAD_MEMBERS_UPDATE, listener: (payload: GatewayClientEvents.ThreadMembersUpdate) => any): this; on(event: 'threadMembersUpdate', listener: (payload: GatewayClientEvents.ThreadMembersUpdate) => any): this; on(event: ClientEvents.THREAD_UPDATE, listener: (payload: GatewayClientEvents.ThreadUpdate) => any): this; on(event: 'threadUpdate', listener: (payload: GatewayClientEvents.ThreadUpdate) => any): this; on(event: ClientEvents.TYPING_START, listener: (payload: GatewayClientEvents.TypingStart) => any): this; on(event: 'typingStart', listener: (payload: GatewayClientEvents.TypingStart) => any): this; on(event: ClientEvents.TYPING_STOP, listener: (payload: GatewayClientEvents.TypingStop) => any): this; on(event: 'typingStop', listener: (payload: GatewayClientEvents.TypingStop) => any): this; on(event: ClientEvents.USER_ACHIEVEMENT_UPDATE, listener: (payload: GatewayClientEvents.UserAchievementUpdate) => any): this; on(event: 'userAchievementUpdate', listener: (payload: GatewayClientEvents.UserAchievementUpdate) => any): this; on(event: ClientEvents.USER_CONNECTIONS_UPDATE, listener: (payload: GatewayClientEvents.UserConnectionsUpdate) => any): this; on(event: 'userConnectionsUpdate', listener: (payload: GatewayClientEvents.UserConnectionsUpdate) => any): this; on(event: ClientEvents.USER_FEED_SETTINGS_UPDATE, listener: (payload: GatewayClientEvents.UserFeedSettingsUpdate) => any): this; on(event: 'userFeedSettingsUpdate', listener: (payload: GatewayClientEvents.UserFeedSettingsUpdate) => any): this; on(event: ClientEvents.USER_GUILD_SETTINGS_UPDATE, listener: (payload: GatewayClientEvents.UserGuildSettingsUpdate) => any): this; on(event: 'userGuildSettingsUpdate', listener: (payload: GatewayClientEvents.UserGuildSettingsUpdate) => any): this; on(event: ClientEvents.USER_NOTE_UPDATE, listener: (payload: GatewayClientEvents.UserNoteUpdate) => any): this; on(event: 'userNoteUpdate', listener: (payload: GatewayClientEvents.UserNoteUpdate) => any): this; on(event: ClientEvents.USER_PAYMENT_SOURCES_UPDATE, listener: (payload: GatewayClientEvents.UserPaymentSourcesUpdate) => any): this; on(event: 'userPaymentSourcesUpdate', listener: (payload: GatewayClientEvents.UserPaymentSourcesUpdate) => any): this; on(event: ClientEvents.USER_PAYMENTS_UPDATE, listener: (payload: GatewayClientEvents.UserPaymentsUpdate) => any): this; on(event: 'userPaymentsUpdate', listener: (payload: GatewayClientEvents.UserPaymentsUpdate) => any): this; on(event: ClientEvents.USER_REQUIRED_ACTION_UPDATE, listener: (payload: GatewayClientEvents.UserRequiredActionUpdate) => any): this; on(event: 'userRequiredActionUpdate', listener: (payload: GatewayClientEvents.UserRequiredActionUpdate) => any): this; on(event: ClientEvents.USER_UPDATE, listener: (payload: GatewayClientEvents.UserUpdate) => any): this; on(event: 'userUpdate', listener: (payload: GatewayClientEvents.UserUpdate) => any): this; on(event: ClientEvents.USERS_UPDATE, listener: (payload: GatewayClientEvents.UsersUpdate) => any): this; on(event: 'usersUpdate', listener: (payload: GatewayClientEvents.UsersUpdate) => any): this; on(event: ClientEvents.VOICE_SERVER_UPDATE, listener: (payload: GatewayClientEvents.VoiceServerUpdate) => any): this; on(event: 'voiceServerUpdate', listener: (payload: GatewayClientEvents.VoiceServerUpdate) => any): this; on(event: ClientEvents.VOICE_STATE_UPDATE, listener: (payload: GatewayClientEvents.VoiceStateUpdate) => any): this; on(event: 'voiceStateUpdate', listener: (payload: GatewayClientEvents.VoiceStateUpdate) => any): this; on(event: ClientEvents.WEBHOOKS_UPDATE, listener: (payload: GatewayClientEvents.WebhooksUpdate) => any): this; on(event: 'webhooksUpdate', listener: (payload: GatewayClientEvents.WebhooksUpdate) => any): this; on(event: ClientEvents.RAW, listener: (payload: GatewayClientEvents.Raw) => any): this; on(event: 'raw', listener: (payload: GatewayClientEvents.Raw) => any): this; on(event: ClientEvents.REST_REQUEST, listener: (payload: GatewayClientEvents.RestRequest) => any): this; on(event: 'restRequest', listener: (payload: GatewayClientEvents.RestRequest) => any): this; on(event: ClientEvents.REST_RESPONSE, listener: (payload: GatewayClientEvents.RestResponse) => any): this; on(event: 'restResponse', listener: (payload: GatewayClientEvents.RestResponse) => any): this; on(event: ClientEvents.UNKNOWN, listener: (payload: GatewayClientEvents.Unknown) => any): this; on(event: 'unknown', listener: (payload: GatewayClientEvents.Unknown) => any): this; on(event: ClientEvents.WARN, listener: (payload: GatewayClientEvents.Warn) => any): this; on(event: 'warn', listener: (payload: GatewayClientEvents.Warn) => any): this; on(event: ClientEvents.KILLED, listener: (payload: GatewayClientEvents.Killed) => any): this; on(event: 'killed', listener: (payload: GatewayClientEvents.Killed) => any): this; once(event: string | symbol, listener: (...args: any[]) => void): this; once(event: ClientEvents.ACTIVITY_JOIN_INVITE, listener: (payload: GatewayClientEvents.ActivityJoinInvite) => any): this; once(event: 'activityJoinInvite', listener: (payload: GatewayClientEvents.ActivityJoinInvite) => any): this; once(event: ClientEvents.ACTIVITY_JOIN_REQUEST, listener: (payload: GatewayClientEvents.ActivityJoinRequest) => any): this; once(event: 'activityJoinRequest', listener: (payload: GatewayClientEvents.ActivityJoinRequest) => any): this; once(event: ClientEvents.ACTIVITY_START, listener: (payload: GatewayClientEvents.ActivityStart) => any): this; once(event: 'activityStart', listener: (payload: GatewayClientEvents.ActivityStart) => any): this; once(event: ClientEvents.APPLICATION_COMMAND_CREATE, listener: (payload: GatewayClientEvents.ApplicationCommandCreate) => any): this; once(event: 'applicationCommandCreate', listener: (payload: GatewayClientEvents.ApplicationCommandCreate) => any): this; once(event: ClientEvents.APPLICATION_COMMAND_DELETE, listener: (payload: GatewayClientEvents.ApplicationCommandDelete) => any): this; once(event: 'applicationCommandDelete', listener: (payload: GatewayClientEvents.ApplicationCommandDelete) => any): this; once(event: ClientEvents.APPLICATION_COMMAND_UPDATE, listener: (payload: GatewayClientEvents.ApplicationCommandUpdate) => any): this; once(event: 'applicationCommandUpdate', listener: (payload: GatewayClientEvents.ApplicationCommandUpdate) => any): this; once(event: ClientEvents.BRAINTREE_POPUP_BRIDGE_CALLBACK, listener: (payload: GatewayClientEvents.BraintreePopupBridgeCallback) => any): this; once(event: 'braintreePopupBridgeCallback', listener: (payload: GatewayClientEvents.BraintreePopupBridgeCallback) => any): this; once(event: ClientEvents.CALL_CREATE, listener: (payload: GatewayClientEvents.CallCreate) => any): this; once(event: 'callCreate', listener: (payload: GatewayClientEvents.CallCreate) => any): this; once(event: ClientEvents.CALL_DELETE, listener: (payload: GatewayClientEvents.CallDelete) => any): this; once(event: 'callDelete', listener: (payload: GatewayClientEvents.CallDelete) => any): this; once(event: ClientEvents.CALL_UPDATE, listener: (payload: GatewayClientEvents.CallUpdate) => any): this; once(event: 'callUpdate', listener: (payload: GatewayClientEvents.CallUpdate) => any): this; once(event: ClientEvents.CHANNEL_CREATE, listener: (payload: GatewayClientEvents.ChannelCreate) => any): this; once(event: 'channelCreate', listener: (payload: GatewayClientEvents.ChannelCreate) => any): this; once(event: ClientEvents.CHANNEL_DELETE, listener: (payload: GatewayClientEvents.ChannelDelete) => any): this; once(event: 'channelDelete', listener: (payload: GatewayClientEvents.ChannelDelete) => any): this; once(event: ClientEvents.CHANNEL_UPDATE, listener: (payload: GatewayClientEvents.ChannelUpdate) => any): this; once(event: 'channelUpdate', listener: (payload: GatewayClientEvents.ChannelUpdate) => any): this; once(event: ClientEvents.CHANNEL_PINS_ACK, listener: (payload: GatewayClientEvents.ChannelPinsAck) => any): this; once(event: 'channelPinsAck', listener: (payload: GatewayClientEvents.ChannelPinsAck) => any): this; once(event: ClientEvents.CHANNEL_PINS_UPDATE, listener: (payload: GatewayClientEvents.ChannelPinsUpdate) => any): this; once(event: 'channelPinsUpdate', listener: (payload: GatewayClientEvents.ChannelPinsUpdate) => any): this; once(event: ClientEvents.CHANNEL_RECIPIENT_ADD, listener: (payload: GatewayClientEvents.ChannelRecipientAdd) => any): this; once(event: 'channelRecipientAdd', listener: (payload: GatewayClientEvents.ChannelRecipientAdd) => any): this; once(event: ClientEvents.CHANNEL_RECIPIENT_REMOVE, listener: (payload: GatewayClientEvents.ChannelRecipientRemove) => any): this; once(event: 'channelRecipientRemove', listener: (payload: GatewayClientEvents.ChannelRecipientRemove) => any): this; once(event: ClientEvents.ENTITLEMENT_CREATE, listener: (payload: GatewayClientEvents.EntitlementCreate) => any): this; once(event: 'entitlementCreate', listener: (payload: GatewayClientEvents.EntitlementCreate) => any): this; once(event: ClientEvents.ENTITLEMENT_DELETE, listener: (payload: GatewayClientEvents.EntitlementDelete) => any): this; once(event: 'entitlementDelete', listener: (payload: GatewayClientEvents.EntitlementDelete) => any): this; once(event: ClientEvents.ENTITLEMENT_UPDATE, listener: (payload: GatewayClientEvents.EntitlementUpdate) => any): this; once(event: 'entitlementUpdate', listener: (payload: GatewayClientEvents.EntitlementUpdate) => any): this; once(event: ClientEvents.FRIEND_SUGGESTION_CREATE, listener: (payload: GatewayClientEvents.FriendSuggestionCreate) => any): this; once(event: 'friendSuggestionCreate', listener: (payload: GatewayClientEvents.FriendSuggestionCreate) => any): this; once(event: ClientEvents.FRIEND_SUGGESTION_DELETE, listener: (payload: GatewayClientEvents.FriendSuggestionDelete) => any): this; once(event: 'friendSuggestionDelete', listener: (payload: GatewayClientEvents.FriendSuggestionDelete) => any): this; once(event: ClientEvents.GATEWAY_READY, listener: (payload: GatewayClientEvents.GatewayReady) => any): this; once(event: 'gatewayReady', listener: (payload: GatewayClientEvents.GatewayReady) => any): this; once(event: ClientEvents.GATEWAY_RESUMED, listener: (payload: GatewayClientEvents.GatewayResumed) => any): this; once(event: 'gatewayResumed', listener: (payload: GatewayClientEvents.GatewayResumed) => any): this; once(event: ClientEvents.GIFT_CODE_UPDATE, listener: (payload: GatewayClientEvents.GiftCodeUpdate) => any): this; once(event: 'giftCodeUpdate', listener: (payload: GatewayClientEvents.GiftCodeUpdate) => any): this; once(event: ClientEvents.GUILD_BAN_ADD, listener: (payload: GatewayClientEvents.GuildBanAdd) => any): this; once(event: 'guildBanAdd', listener: (payload: GatewayClientEvents.GuildBanAdd) => any): this; once(event: ClientEvents.GUILD_BAN_REMOVE, listener: (payload: GatewayClientEvents.GuildBanRemove) => any): this; once(event: 'guildBanRemove', listener: (payload: GatewayClientEvents.GuildBanRemove) => any): this; once(event: ClientEvents.GUILD_CREATE, listener: (payload: GatewayClientEvents.GuildCreate) => any): this; once(event: 'guildCreate', listener: (payload: GatewayClientEvents.GuildCreate) => any): this; once(event: ClientEvents.GUILD_DELETE, listener: (payload: GatewayClientEvents.GuildDelete) => any): this; once(event: 'guildDelete', listener: (payload: GatewayClientEvents.GuildDelete) => any): this; once(event: ClientEvents.GUILD_EMOJIS_UPDATE, listener: (payload: GatewayClientEvents.GuildEmojisUpdate) => any): this; once(event: 'guildEmojisUpdate', listener: (payload: GatewayClientEvents.GuildEmojisUpdate) => any): this; once(event: ClientEvents.GUILD_INTEGRATIONS_UPDATE, listener: (payload: GatewayClientEvents.GuildIntegrationsUpdate) => any): this; once(event: 'guildIntegrationsUpdate', listener: (payload: GatewayClientEvents.GuildIntegrationsUpdate) => any): this; once(event: ClientEvents.GUILD_MEMBER_ADD, listener: (payload: GatewayClientEvents.GuildMemberAdd) => any): this; once(event: 'guildMemberAdd', listener: (payload: GatewayClientEvents.GuildMemberAdd) => any): this; once(event: ClientEvents.GUILD_MEMBER_LIST_UPDATE, listener: (payload: GatewayClientEvents.GuildMemberListUpdate) => any): this; once(event: 'guildMemberListUpdate', listener: (payload: GatewayClientEvents.GuildMemberListUpdate) => any): this; once(event: ClientEvents.GUILD_MEMBER_REMOVE, listener: (payload: GatewayClientEvents.GuildMemberRemove) => any): this; once(event: 'guildMemberRemove', listener: (payload: GatewayClientEvents.GuildMemberRemove) => any): this; once(event: ClientEvents.GUILD_MEMBER_UPDATE, listener: (payload: GatewayClientEvents.GuildMemberUpdate) => any): this; once(event: 'guildMemberUpdate', listener: (payload: GatewayClientEvents.GuildMemberUpdate) => any): this; once(event: ClientEvents.GUILD_MEMBERS_CHUNK, listener: (payload: GatewayClientEvents.GuildMembersChunk) => any): this; once(event: 'guildMembersChunk', listener: (payload: GatewayClientEvents.GuildMembersChunk) => any): this; once(event: ClientEvents.GUILD_READY, listener: (payload: GatewayClientEvents.GuildReady) => any): this; once(event: 'guildReady', listener: (payload: GatewayClientEvents.GuildReady) => any): this; once(event: ClientEvents.GUILD_ROLE_CREATE, listener: (payload: GatewayClientEvents.GuildRoleCreate) => any): this; once(event: 'guildRoleCreate', listener: (payload: GatewayClientEvents.GuildRoleCreate) => any): this; once(event: ClientEvents.GUILD_ROLE_DELETE, listener: (payload: GatewayClientEvents.GuildRoleDelete) => any): this; once(event: 'guildRoleDelete', listener: (payload: GatewayClientEvents.GuildRoleDelete) => any): this; once(event: ClientEvents.GUILD_ROLE_UPDATE, listener: (payload: GatewayClientEvents.GuildRoleUpdate) => any): this; once(event: 'guildRoleUpdate', listener: (payload: GatewayClientEvents.GuildRoleUpdate) => any): this; once(event: ClientEvents.GUILD_STICKERS_UPDATE, listener: (payload: GatewayClientEvents.GuildStickersUpdate) => any): this; once(event: 'guildStickersUpdate', listener: (payload: GatewayClientEvents.GuildStickersUpdate) => any): this; once(event: ClientEvents.GUILD_UPDATE, listener: (payload: GatewayClientEvents.GuildUpdate) => any): this; once(event: 'guildUpdate', listener: (payload: GatewayClientEvents.GuildUpdate) => any): this; once(event: ClientEvents.INVITE_CREATE, listener: (payload: GatewayClientEvents.InviteCreate) => any): this; once(event: 'inviteCreate', listener: (payload: GatewayClientEvents.InviteCreate) => any): this; once(event: ClientEvents.INVITE_DELETE, listener: (payload: GatewayClientEvents.InviteDelete) => any): this; once(event: 'inviteDelete', listener: (payload: GatewayClientEvents.InviteDelete) => any): this; once(event: ClientEvents.LIBRARY_APPLICATION_UPDATE, listener: (payload: GatewayClientEvents.LibraryApplicationUpdate) => any): this; once(event: 'libraryApplicationUpdate', listener: (payload: GatewayClientEvents.LibraryApplicationUpdate) => any): this; once(event: ClientEvents.LOBBY_CREATE, listener: (payload: GatewayClientEvents.LobbyCreate) => any): this; once(event: 'lobbyCreate', listener: (payload: GatewayClientEvents.LobbyCreate) => any): this; once(event: ClientEvents.LOBBY_DELETE, listener: (payload: GatewayClientEvents.LobbyDelete) => any): this; once(event: 'lobbyDelete', listener: (payload: GatewayClientEvents.LobbyDelete) => any): this; once(event: ClientEvents.LOBBY_UPDATE, listener: (payload: GatewayClientEvents.LobbyUpdate) => any): this; once(event: 'lobbyUpdate', listener: (payload: GatewayClientEvents.LobbyUpdate) => any): this; once(event: ClientEvents.LOBBY_MEMBER_CONNECT, listener: (payload: GatewayClientEvents.LobbyMemberConnect) => any): this; once(event: 'lobbyMemberConnect', listener: (payload: GatewayClientEvents.LobbyMemberConnect) => any): this; once(event: ClientEvents.LOBBY_MEMBER_DISCONNECT, listener: (payload: GatewayClientEvents.LobbyMemberDisconnect) => any): this; once(event: 'lobbyMemberDisconnect', listener: (payload: GatewayClientEvents.LobbyMemberDisconnect) => any): this; once(event: ClientEvents.LOBBY_MEMBER_UPDATE, listener: (payload: GatewayClientEvents.LobbyMemberUpdate) => any): this; once(event: 'lobbyMemberUpdate', listener: (payload: GatewayClientEvents.LobbyMemberUpdate) => any): this; once(event: ClientEvents.LOBBY_MESSAGE, listener: (payload: GatewayClientEvents.LobbyMessage) => any): this; once(event: 'lobbyMessage', listener: (payload: GatewayClientEvents.LobbyMessage) => any): this; once(event: ClientEvents.LOBBY_VOICE_SERVER_UPDATE, listener: (payload: GatewayClientEvents.LobbyVoiceServerUpdate) => any): this; once(event: 'lobbyVoiceServerUpdate', listener: (payload: GatewayClientEvents.LobbyVoiceServerUpdate) => any): this; once(event: ClientEvents.LOBBY_VOICE_STATE_UPDATE, listener: (payload: GatewayClientEvents.LobbyVoiceStateUpdate) => any): this; once(event: 'lobbyVoiceStateUpdate', listener: (payload: GatewayClientEvents.LobbyVoiceStateUpdate) => any): this; once(event: ClientEvents.MESSAGE_ACK, listener: (payload: GatewayClientEvents.MessageAck) => any): this; once(event: 'messageAck', listener: (payload: GatewayClientEvents.MessageAck) => any): this; once(event: ClientEvents.MESSAGE_CREATE, listener: (payload: GatewayClientEvents.MessageCreate) => any): this; once(event: 'messageCreate', listener: (payload: GatewayClientEvents.MessageCreate) => any): this; once(event: ClientEvents.MESSAGE_DELETE, listener: (payload: GatewayClientEvents.MessageDelete) => any): this; once(event: 'messageDelete', listener: (payload: GatewayClientEvents.MessageDelete) => any): this; once(event: ClientEvents.MESSAGE_DELETE_BULK, listener: (payload: GatewayClientEvents.MessageDeleteBulk) => any): this; once(event: 'messageDeleteBulk', listener: (payload: GatewayClientEvents.MessageDeleteBulk) => any): this; once(event: ClientEvents.MESSAGE_REACTION_ADD, listener: (payload: GatewayClientEvents.MessageReactionAdd) => any): this; once(event: 'messageReactionAdd', listener: (payload: GatewayClientEvents.MessageReactionAdd) => any): this; once(event: ClientEvents.MESSAGE_REACTION_REMOVE, listener: (payload: GatewayClientEvents.MessageReactionRemove) => any): this; once(event: 'messageReactionRemove', listener: (payload: GatewayClientEvents.MessageReactionRemove) => any): this; once(event: ClientEvents.MESSAGE_REACTION_REMOVE_ALL, listener: (payload: GatewayClientEvents.MessageReactionRemoveAll) => any): this; once(event: 'messageReactionRemoveAll', listener: (payload: GatewayClientEvents.MessageReactionRemoveAll) => any): this; once(event: ClientEvents.MESSAGE_REACTION_REMOVE_EMOJI, listener: (payload: GatewayClientEvents.MessageReactionRemoveEmoji) => any): this; once(event: 'messageReactionRemoveEmoji', listener: (payload: GatewayClientEvents.MessageReactionRemoveEmoji) => any): this; once(event: ClientEvents.MESSAGE_UPDATE, listener: (payload: GatewayClientEvents.MessageUpdate) => any): this; once(event: 'messageUpdate', listener: (payload: GatewayClientEvents.MessageUpdate) => any): this; once(event: ClientEvents.PRESENCES_REPLACE, listener: (payload: GatewayClientEvents.PresencesReplace) => any): this; once(event: 'presencesReplace', listener: (payload: GatewayClientEvents.PresencesReplace) => any): this; once(event: ClientEvents.PRESENCE_UPDATE, listener: (payload: GatewayClientEvents.PresenceUpdate) => any): this; once(event: 'presenceUpdate', listener: (payload: GatewayClientEvents.PresenceUpdate) => any): this; once(event: ClientEvents.RECENT_MENTION_DELETE, listener: (payload: GatewayClientEvents.RecentMentionDelete) => any): this; once(event: 'recentMentionDelete', listener: (payload: GatewayClientEvents.RecentMentionDelete) => any): this; once(event: ClientEvents.RELATIONSHIP_ADD, listener: (payload: GatewayClientEvents.RelationshipAdd) => any): this; once(event: 'relationshipAdd', listener: (payload: GatewayClientEvents.RelationshipAdd) => any): this; once(event: ClientEvents.RELATIONSHIP_REMOVE, listener: (payload: GatewayClientEvents.RelationshipRemove) => any): this; once(event: 'relationshipRemove', listener: (payload: GatewayClientEvents.RelationshipRemove) => any): this; once(event: ClientEvents.SESSIONS_REPLACE, listener: (payload: GatewayClientEvents.SessionsReplace) => any): this; once(event: 'sessionsReplace', listener: (payload: GatewayClientEvents.SessionsReplace) => any): this; once(event: ClientEvents.STAGE_INSTANCE_CREATE, listener: (payload: GatewayClientEvents.StageInstanceCreate) => any): this; once(event: 'stageInstanceCreate', listener: (payload: GatewayClientEvents.StageInstanceCreate) => any): this; once(event: ClientEvents.STAGE_INSTANCE_DELETE, listener: (payload: GatewayClientEvents.StageInstanceDelete) => any): this; once(event: 'stageInstanceDelete', listener: (payload: GatewayClientEvents.StageInstanceDelete) => any): this; once(event: ClientEvents.STAGE_INSTANCE_UPDATE, listener: (payload: GatewayClientEvents.StageInstanceUpdate) => any): this; once(event: 'stageInstanceUpdate', listener: (payload: GatewayClientEvents.StageInstanceUpdate) => any): this; once(event: ClientEvents.STREAM_CREATE, listener: (payload: GatewayClientEvents.StreamCreate) => any): this; once(event: 'streamCreate', listener: (payload: GatewayClientEvents.StreamCreate) => any): this; once(event: ClientEvents.STREAM_DELETE, listener: (payload: GatewayClientEvents.StreamDelete) => any): this; once(event: 'streamDelete', listener: (payload: GatewayClientEvents.StreamDelete) => any): this; once(event: ClientEvents.STREAM_SERVER_UPDATE, listener: (payload: GatewayClientEvents.StreamServerUpdate) => any): this; once(event: 'streamServerUpdate', listener: (payload: GatewayClientEvents.StreamServerUpdate) => any): this; once(event: ClientEvents.STREAM_UPDATE, listener: (payload: GatewayClientEvents.StreamUpdate) => any): this; once(event: 'streamUpdate', listener: (payload: GatewayClientEvents.StreamUpdate) => any): this; once(event: ClientEvents.THREAD_CREATE, listener: (payload: GatewayClientEvents.ThreadCreate) => any): this; once(event: 'threadCreate', listener: (payload: GatewayClientEvents.ThreadCreate) => any): this; once(event: ClientEvents.THREAD_DELETE, listener: (payload: GatewayClientEvents.ThreadDelete) => any): this; once(event: 'threadDelete', listener: (payload: GatewayClientEvents.ThreadDelete) => any): this; once(event: ClientEvents.THREAD_LIST_SYNC, listener: (payload: GatewayClientEvents.ThreadListSync) => any): this; once(event: 'threadListSync', listener: (payload: GatewayClientEvents.ThreadListSync) => any): this; once(event: ClientEvents.THREAD_MEMBER_UPDATE, listener: (payload: GatewayClientEvents.ThreadMemberUpdate) => any): this; once(event: 'threadMemberUpdate', listener: (payload: GatewayClientEvents.ThreadMemberUpdate) => an