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
]
>;Kinds
Kinds extends MiddlewareKindTCtor
TCtor extends AnyMiddlewareCtor