# KindName

`type` in `http` · v0.1.0-next.0

<https://docs.seedcord.org/packages/http/0.1.0-next.0/types/kind-name>

## Declaration

```ts
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
              ? "MessageMenu"
              : Repliable extends APIUserApplicationCommandInteraction
                ? "UserMenu"
                : SelectData<Repliable> extends APIMessageStringSelectInteractionData
                  ? "StringSelect"
                  : SelectData<Repliable> extends APIMessageUserSelectInteractionData
                    ? "UserSelect"
                    : SelectData<Repliable> extends APIMessageRoleSelectInteractionData
                      ? "RoleSelect"
                      : SelectData<Repliable> extends APIMessageChannelSelectInteractionData
                        ? "ChannelSelect"
                        : SelectData<Repliable> extends APIMessageMentionableSelectInteractionData
                          ? "MentionableSelect"
                          : Repliable extends APIMessageComponentButtonInteraction
                            ? "Button"
                            : Repliable extends APIModalSubmitInteraction
                              ? "Modal"
                              : "an interaction"
        : "an agnostic";
```
