# KindName

`type` in `http` · v0.8.0

<https://docs.seedcord.org/packages/http/0.8.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
              ? "MessageContextMenu"
              : Repliable extends APIUserApplicationCommandInteraction
                ? "UserContextMenu"
                : Repliable extends APIMessageComponentSelectMenuInteraction
                  ? SelectKindName<SelectData<Repliable>>
                  : Repliable extends APIMessageComponentButtonInteraction
                    ? "Button"
                    : Repliable extends APIModalSubmitInteraction
                      ? "Modal"
                      : "an interaction"
        : "an agnostic";
```
