<T, P extends string, M extends string, U extends ValidationTypeByMethod<M>, V extends [K in U]: T, E extends Env = any>(type: U, validationFunc: (value: ValidationTypes[U], c: Context<E>) => T | Response | Promise<Response>) => MiddlewareHandler<E, P, V>