# KindName

`type` in `gateway` · v0.1.0-next.3

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

## Declaration

```ts
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";
```
