type KindName<Ctx> = Ctx extends Ungateable
? "autocomplete"
: Ctx extends GuildPermissionsContext
? "gateway (guild permissions)"
: Ctx extends InteractionGateContext<infer Repliable>
? Repliable extends APIChatInputApplicationCommandInteraction
? "Slash"
: Repliable extends APIMessageApplicationCommandInteraction
? "MessageContextMenu"
: Repliable extends APIUserApplicationCommandInteraction
? "UserContextMenu"
: Repliable extends APIMessageComponentSelectMenuInteraction
? SelectKindName<SelectData<Repliable>>
: Repliable extends APIMessageComponentButtonInteraction
? "Button"
: Repliable extends APIModalSubmitInteraction
? "Modal"
: "an interaction"
: "an agnostic";Ctx
Ctx