import * as yup from 'yup';
import Reference from "yup/lib/Reference";
interface NumberReference {
    ref: number | Reference<number>;
    message: string;
}
interface ArrayOfStringConstraint {
    arrayOfValues: string[];
    message: string;
}
interface ArrayOfAnyConstraint {
    arrayOfValues: any[];
    message: string;
}
interface TestConstraint {
    name: string;
    message: string;
    test: (val: any) => boolean;
}
interface WhenConstraint {
    ref: string;
    test: (val: any) => boolean;
    then: any;
    otherwise: any;
}
interface Ref {
    ref: string;
}
export declare const required: (message?: string) => (r: yup.AnySchema) => any;
export declare const url: (message?: string) => (r: yup.StringSchema) => yup.StringSchema<string | undefined, import("yup/lib/types").AnyObject, string | undefined>;
export declare const email: (message?: string) => (r: yup.StringSchema) => yup.StringSchema<string | undefined, import("yup/lib/types").AnyObject, string | undefined>;
export declare const uuid: (message?: string) => (r: yup.StringSchema) => yup.StringSchema<string | undefined, import("yup/lib/types").AnyObject, string | undefined>;
export declare const matches: (regexp?: RegExp, message?: string) => (r: yup.StringSchema) => yup.StringSchema<string | undefined, import("yup/lib/types").AnyObject, string | undefined>;
export declare const min: (ref: number | Reference<number>, message?: string) => (r: yup.NumberSchema | yup.StringSchema) => yup.StringSchema<string | undefined, import("yup/lib/types").AnyObject, string | undefined> | yup.NumberSchema<number | undefined, import("yup/lib/types").AnyObject, number | undefined>;
export declare const max: (ref: number | Reference<number>, message?: string) => (r: yup.NumberSchema | yup.StringSchema) => yup.StringSchema<string | undefined, import("yup/lib/types").AnyObject, string | undefined> | yup.NumberSchema<number | undefined, import("yup/lib/types").AnyObject, number | undefined>;
export declare const positive: (message?: string) => (r: yup.NumberSchema) => yup.NumberSchema<number | undefined, import("yup/lib/types").AnyObject, number | undefined>;
export declare const negative: (message?: string) => (r: yup.NumberSchema) => yup.NumberSchema<number | undefined, import("yup/lib/types").AnyObject, number | undefined>;
export declare const integer: (message?: string) => (r: yup.NumberSchema) => yup.NumberSchema<number | undefined, import("yup/lib/types").AnyObject, number | undefined>;
export declare const lessThan: (ref: number | Reference<number>, message?: string) => (r: yup.NumberSchema, key: string, dependencies: any) => yup.NumberSchema<number | undefined, import("yup/lib/types").AnyObject, number | undefined>;
export declare const moreThan: (ref: number | Reference<number>, message?: string) => (r: yup.NumberSchema, key: string, dependencies: any) => yup.NumberSchema<number | undefined, import("yup/lib/types").AnyObject, number | undefined>;
export declare const length: (ref: number | Reference<number>, message?: string) => (r: yup.ArraySchema<yup.AnySchema>) => yup.ArraySchema<yup.AnySchema<any, any, any>, import("yup/lib/types").AnyObject, any[] | undefined, any[] | undefined>;
export declare const supportedFormat: (arrayOfValues: string[], message?: string) => (r: yup.ObjectSchema<any, any, any, any>) => yup.ObjectSchema<any, any, any, any>;
export declare const unsupportedFormat: (arrayOfValues: string[], message?: string) => (r: yup.ObjectSchema<any, any, any, any>) => yup.ObjectSchema<any, any, any, any>;
export declare const maxSize: (ref: number | Reference<number>, message?: string) => (r: yup.ObjectSchema<any, any, any, any>) => yup.ObjectSchema<any, any, any, any>;
export declare const nullable: () => (r: yup.AnySchema) => any;
export declare const test: (name: string, message: string | undefined, test: (val: any) => boolean) => (r: yup.AnySchema) => yup.AnySchema<any, any, any>;
export declare const when: (ref: string, test: (val: any) => boolean, then?: any, otherwise?: any) => (r: yup.AnySchema, key: string, dependencies: any) => yup.AnySchema<any, any, any>;
export declare const oneOf: (arrayOfValues: any[], message?: string) => (r: yup.AnySchema) => yup.AnySchema<any, any, any>;
export declare const ref: (ref: string) => Reference;
export declare const jsonConstraints: {
    required: ({ message }: {
        message?: string | undefined;
    }) => (r: yup.AnySchema) => any;
    url: ({ message }: {
        message?: string | undefined;
    }) => (r: yup.StringSchema) => yup.StringSchema<string | undefined, import("yup/lib/types").AnyObject, string | undefined>;
    email: ({ message }: {
        message?: string | undefined;
    }) => (r: yup.StringSchema) => yup.StringSchema<string | undefined, import("yup/lib/types").AnyObject, string | undefined>;
    uuid: ({ message }: {
        message?: string | undefined;
    }) => (r: yup.StringSchema) => yup.StringSchema<string | undefined, import("yup/lib/types").AnyObject, string | undefined>;
    matches: ({ regexp, message }: {
        regexp?: RegExp | undefined;
        message?: string | undefined;
    }) => (r: yup.StringSchema) => yup.StringSchema<string | undefined, import("yup/lib/types").AnyObject, string | undefined>;
    min: ({ ref, message }: NumberReference) => (r: yup.NumberSchema | yup.StringSchema) => yup.StringSchema<string | undefined, import("yup/lib/types").AnyObject, string | undefined> | yup.NumberSchema<number | undefined, import("yup/lib/types").AnyObject, number | undefined>;
    max: ({ ref, message }: NumberReference) => (r: yup.NumberSchema | yup.StringSchema) => yup.StringSchema<string | undefined, import("yup/lib/types").AnyObject, string | undefined> | yup.NumberSchema<number | undefined, import("yup/lib/types").AnyObject, number | undefined>;
    positive: ({ message }: {
        message?: string | undefined;
    }) => (r: yup.NumberSchema) => yup.NumberSchema<number | undefined, import("yup/lib/types").AnyObject, number | undefined>;
    negative: ({ message }: {
        message?: string | undefined;
    }) => (r: yup.NumberSchema) => yup.NumberSchema<number | undefined, import("yup/lib/types").AnyObject, number | undefined>;
    integer: ({ message }: {
        message?: string | undefined;
    }) => (r: yup.NumberSchema) => yup.NumberSchema<number | undefined, import("yup/lib/types").AnyObject, number | undefined>;
    lessThan: ({ ref, message }: NumberReference) => (r: yup.NumberSchema, key: string, dependencies: any) => yup.NumberSchema<number | undefined, import("yup/lib/types").AnyObject, number | undefined>;
    moreThan: ({ ref, message }: NumberReference) => (r: yup.NumberSchema, key: string, dependencies: any) => yup.NumberSchema<number | undefined, import("yup/lib/types").AnyObject, number | undefined>;
    length: ({ ref, message }: NumberReference) => (r: yup.ArraySchema<yup.AnySchema>) => yup.ArraySchema<yup.AnySchema<any, any, any>, import("yup/lib/types").AnyObject, any[] | undefined, any[] | undefined>;
    supportedFormat: ({ arrayOfValues, message }: ArrayOfStringConstraint) => (r: yup.ObjectSchema<any, any, any, any>) => yup.ObjectSchema<any, any, any, any>;
    unsupportedFormat: ({ arrayOfValues, message }: ArrayOfStringConstraint) => (r: yup.ObjectSchema<any, any, any, any>) => yup.ObjectSchema<any, any, any, any>;
    maxSize: ({ ref, message }: NumberReference) => (r: yup.ObjectSchema<any, any, any, any>) => yup.ObjectSchema<any, any, any, any>;
    test: (c: TestConstraint) => (r: yup.AnySchema) => yup.AnySchema<any, any, any>;
    when: ({ ref, test, then, otherwise }: WhenConstraint) => (r: yup.AnySchema, key: string, dependencies: any) => yup.AnySchema<any, any, any>;
    oneOf: ({ arrayOfValues, message }: ArrayOfAnyConstraint) => (r: yup.AnySchema) => yup.AnySchema<any, any, any>;
    ref: (val: Ref) => Reference;
    nullable: () => (r: yup.AnySchema) => any;
};
export {};
