# KindName

`type` in `gateway` · v0.6.0

<https://docs.seedcord.org/packages/gateway/0.6.0/types/kind-name>

## Declaration

```ts
type KindName<Ctx> = Ctx extends Ungateable
    ? "autocomplete"
    : Ctx extends InteractionGateContext<infer R>
      ? R extends ChatInputCommandInteraction
          ? "Slash"
          : R extends MessageContextMenuCommandInteraction
            ? "MessageContextMenu"
            : R extends UserContextMenuCommandInteraction
              ? "UserContextMenu"
              : R extends StringSelectMenuInteraction
                ? "StringMenu"
                : R extends UserSelectMenuInteraction
                  ? "UserMenu"
                  : R extends RoleSelectMenuInteraction
                    ? "RoleMenu"
                    : R extends ChannelSelectMenuInteraction
                      ? "ChannelMenu"
                      : R extends MentionableSelectMenuInteraction
                        ? "MentionableMenu"
                        : R extends ButtonInteraction
                          ? "Button"
                          : R extends ModalSubmitInteraction
                            ? "Modal"
                            : "an interaction"
      : Ctx extends EventGateContext<infer N>
        ? `${N & string} event`
        : "an agnostic";
```
