import { Request } from "express"; export declare type DataOriginType = "query" | "body" | "params"; export declare type FieldType = "any" | "string" | "object" | "array" | "bool" | "date" | "timestamp" | "number" | "double" | "int" | "long" | "decimal"; export declare type ValidateOptions = { [key in keyof BodyType]: FieldValidationOptions; }; export interface FieldValidationOptions { type: FieldType | [FieldType, string]; required?: boolean | string; rules?: RuleType[]; validator?: ValidateOptions; } export interface RuleType { message?: string | ((value: any, field: string, origin: DataOriginType, options: FieldValidationOptions, data: any, request: Request) => string | Promise); validator: (value: any, field: string, origin: DataOriginType, options: FieldValidationOptions, data: any, request: Request) => Promise | string | boolean; }