import { ArrayProperty, MapProperty, Properties, Property } from "../models"; import { AnySchema, ObjectSchema } from "yup"; declare module "yup" { interface ArraySchema { uniqueInArray(mapper: (a: T) => T, message: string): ArraySchema; } } export declare type CustomFieldValidator = (props: { name: string; value: any; property: Property; parentProperty?: MapProperty | ArrayProperty; }) => Promise; interface PropertyContext { property: PT; parentProperty?: MapProperty | ArrayProperty; customFieldValidator?: CustomFieldValidator; name?: any; } export declare function getYupEntitySchema(properties: Properties, customFieldValidator?: CustomFieldValidator): ObjectSchema; export declare function mapPropertyToYup(propertyContext: PropertyContext): AnySchema; export declare function getYupMapObjectSchema({ property, parentProperty, customFieldValidator, name }: PropertyContext): ObjectSchema; export {};