type KindName<Ctx> = Ctx extends Ungateable
? "autocomplete"
: Ctx extends InteractionGateContext<infer R>
? R extends ChatInputCommandInteraction
? "Slash"
: R extends MessageContextMenuCommandInteraction
? "MessageMenu"
: R extends UserContextMenuCommandInteraction
? "UserMenu"
: R extends StringSelectMenuInteraction
? "StringSelect"
: R extends UserSelectMenuInteraction
? "UserSelect"
: R extends RoleSelectMenuInteraction
? "RoleSelect"
: R extends ChannelSelectMenuInteraction
? "ChannelSelect"
: R extends MentionableSelectMenuInteraction
? "MentionableSelect"
: R extends ButtonInteraction
? "Button"
: R extends ModalSubmitInteraction
? "Modal"
: "an interaction"
: Ctx extends EventGateContext<infer N>
? `${N & string} event`
: "an agnostic";type KindName<Ctx> = Ctx extends Ungateable
? "autocomplete"
: Ctx extends InteractionGateContext<infer R>
? R extends ChatInputCommandInteraction
? "Slash"
: R extends MessageContextMenuCommandInteraction
? "MessageMenu"
: R extends UserContextMenuCommandInteraction
? "UserMenu"
: R extends StringSelectMenuInteraction
? "StringSelect"
: R extends UserSelectMenuInteraction
? "UserSelect"
: R extends RoleSelectMenuInteraction
? "RoleSelect"
: R extends ChannelSelectMenuInteraction
? "ChannelSelect"
: R extends MentionableSelectMenuInteraction
? "MentionableSelect"
: R extends ButtonInteraction
? "Button"
: R extends ModalSubmitInteraction
? "Modal"
: "an interaction"
: Ctx extends EventGateContext<infer N>
? `${N & string} event`
: "an agnostic";Ctx
CtxCtx