import Joi from "joi";
export declare const SchemaTypes: {
    string: <TSchema = string>() => Joi.StringSchema<TSchema>;
    number: <TSchema = number>() => Joi.NumberSchema<TSchema>;
    boolean: <TSchema = boolean>() => Joi.BooleanSchema<TSchema>;
    object: <TSchema = any, isStrict = false, T = TSchema>(schema?: Joi.SchemaMap<T, isStrict>) => Joi.ObjectSchema<TSchema>;
    array: <TSchema = any[]>() => Joi.ArraySchema<TSchema>;
    date: <TSchema = Date>() => Joi.DateSchema<TSchema>;
    binary: <TSchema = Buffer<ArrayBufferLike>>() => Joi.BinarySchema<TSchema>;
    func: <TSchema = Function>() => Joi.FunctionSchema<TSchema>;
    ref: (key: string, options?: Joi.ReferenceOptions) => Joi.Reference;
    any: <TSchema = any>() => Joi.AnySchema<TSchema>;
    alphanum: () => Joi.StringSchema<string>;
    email: (options?: Joi.EmailOptions) => Joi.StringSchema<string>;
    guid: (options?: Joi.GuidOptions) => Joi.StringSchema<string>;
    ip: (options?: Joi.IpOptions) => Joi.StringSchema<string>;
    uri: (options?: Joi.UriOptions) => Joi.StringSchema<string>;
    max: (limit: number | Joi.Reference) => Joi.NumberSchema<number>;
    min: (limit: number | Joi.Reference) => Joi.NumberSchema<number>;
    length: (limit: number | Joi.Reference) => Joi.StringSchema<string>;
    pattern: (regex: RegExp) => Joi.StringSchema<string>;
    required: () => Joi.Schema<any>;
    optional: () => Joi.Schema<any>;
    allow: (values: any[]) => Joi.Schema<any>;
    valid: (values: any[]) => Joi.Schema<any>;
};
