import joi from 'joi'; import { ValidationSchemas } from '~/domain'; export type ValidationOptions = joi.ValidationOptions; export type ValidationError = Pick; export interface ValidationResult { error?: ValidationError; warning?: ValidationError; value: any; } export interface JoiValidate { (value: { value: any }, options?: ValidationOptions): ValidationResult; } export type OverwriteValidate = Omit & { validate(value: { value: any }, options?: ValidationOptions): ValidationResult; }; export type JoiSchema = { string: joi.StringSchema; number: joi.NumberSchema; object: joi.ObjectSchema; array: joi.ArraySchema; }[T]; export type Joi = typeof joi;