/**
 * Lazy Verifiers DO NOT CHECK ASSUMPTIONS before executing the validation logic.
 *
 * It is important to realize that executing LazyVerify methods in the wrong order can result in false positives,
 * not just errors. For example 'LazyVerify.isInteger("")' will return true.
 *
 * For example, a non-lazy
 * minLength(value) function would normally ensure that 'value' exists and is in fact a string. The lazy version
 * simply assumes those tests have already been done.
 *
 * Lazy verifiers are useful for Validation chains, where it is necessary to run each specific check to obtain
 * a accurate error messages, while not forcing users to add each validation into the chain themselves.
 *
 */
export declare class LazyVerify {
    static exists(value: any): boolean;
    static empty(value: any): boolean;
    static isObject(value: any): boolean;
    static isString(value: any): boolean;
    static isFunction(value: any): boolean;
    static isArray(value: any): boolean;
    static emptyObject(value: any): boolean;
    /**
     * The object has only the specified property keys, and by default must have all of the specified keys.
     * Setting allowMissing to true
     * @param object anything that works with Object.keys
     * @param properties Array of strings that represent keys to check for
     * @param allowMissing If true this test will fail if the object has a key that is not specified in properties,
     * but will not fail if a key is not present on the object.
     * @returns {boolean}
     */
    static hasOnly(object: any, properties?: any[], allowMissing?: boolean): boolean;
    /**
     * The object has all the specified keys, and perhaps others.
     * @param object anything that works with Object.keys
     * @param properties Array of strings that represent keys to check for
     * @returns {boolean}
     */
    static hasAll(object: any, properties?: any[]): boolean;
    static maxLength(value: any, max: any): boolean;
    static minLength(value: any, min: any): boolean;
    static isNumber(value: any): boolean;
    static isInteger(value: any): boolean;
    static min(value: any, min: any): boolean;
    static max(value: any, max: any): boolean;
    static isBoolean(value: any): boolean;
}
export declare class Verify extends LazyVerify {
    static isString(value: any, allowEmpty?: boolean): boolean;
    static maxLength(value: any, max: any): boolean;
    static minLength(value: any, min: any): boolean;
    static isNumber(value: any): boolean;
    static isInteger(value: any): boolean;
    static min(value: any, min: any): boolean;
    static max(value: any, max: any): boolean;
    static isFunction(value: any): boolean;
    static isArray(value: any): boolean;
}
