# AssertMiddlewareKinds

`type` in `core` · v0.8.0

<https://docs.seedcord.org/packages/core/0.8.0/types/assert-middleware-kinds>

## Declaration

```ts
type AssertMiddlewareKinds<
    Kinds extends MiddlewareKind,
    TCtor extends AnyMiddlewareCtor
> = [Kinds] extends [KindsOf<TCtor>]
    ? [KindsOf<TCtor>] extends [Kinds]
        ? TCtor
        : Constructor<
              [
                  "the middleware generic declares a kind that RegisterInteractionMiddleware omits",
                  KindsOf<TCtor>
              ]
          >
    : Constructor<
          [
              "RegisterInteractionMiddleware lists a kind that the middleware generic omits",
              Kinds
          ]
      >;
```
