/**
 * Empty value generator.
 * @private
 */
declare class EmptyValueGenerator {
    currentDate: any;
    /**
     * This constructor should not be called directly.
     * @private
     */
    constructor();
    /**
     * Get a default DateTime value.
     * @return {object} a date value.
     */
    getDateTime(): any;
    /**
     * Get a default Integer value.
     * @return {number} an Integer value.
     */
    getInteger(): number;
    /**
     * Get a default Long value.
     * @return {number} a Long value.
     */
    getLong(): number;
    /**
     * Get a default Double value.
     * @return {number} a Double value.
     */
    getDouble(): number;
    /**
     * Get a default Boolean value.
     * @return {boolean} a Boolean value.
     */
    getBoolean(): boolean;
    /**
     * Get a randomly generated sample String value with lower and upper bound.
     * @param {number} minLength the lower bound on the range, inclusive.
     * @param {number} maxLength the upper bound on the range, inclusive.
     * @return {string} a String value.
     */
    getString(minLength: any, maxLength: any): any;
    /**
     * Get the first enum value from the supplied array.
     * @param {Array} enumValues Array of possible enum values.
     * @return {*} an enum value.
     */
    getEnum(enumValues: any): any;
    /**
     * Get an instance of an empty map.
     * @return {*} an map value.
     */
    getMap(): Map<any, any>;
    /**
     * Get an array using the supplied callback to obtain array values.
     * @param {Function} valueSupplier - callback to obtain values.
     * @return {Array} an array
     */
    getArray<T>(valueSupplier: () => T): T[];
    /**
     * Get a randomly generated sample regex String value with lower and upper bound.
     * @param {RegExp} regex A regular expression.
     * @param {number} minLength the lower bound on the range, inclusive.
     * @param {number} maxLength the upper bound on the range, inclusive.
     * @return {string} a String value.
     */
    getRegex(regex: any, minLength: any, maxLength: any): any;
    /**
     * Get a random value from the range.
     * @param {number} lowerBound the lower bound on the range, inclusive.
     * @param {number} upperBound the upper bound on the range, inclusive.
     * @param {string} type the number type for the range,
     *  `'Long'`, `'Double'`, or `'Integer'`
     * @return {number} a number.
     */
    getRange(lowerBound: any, upperBound: any, type: any): number;
}
/**
 * Sample data value generator.
 * @private
 */
declare class SampleValueGenerator extends EmptyValueGenerator {
    /**
     * This constructor should not be called directly.
     * @private
     */
    constructor();
    /**
     * Get a randomly generated sample Integer value.
     * @return {number} an Integer value.
     */
    getInteger(): number;
    /**
     * Get a randomly generated sample Long value.
     * @return {number} a Long value.
     */
    getLong(): number;
    /**
     * Get a randomly generated sample Double value.
     * @return {number} a Double value.
     */
    getDouble(): number;
    /**
     * Get a randomly generated sample Boolean value.
     * @return {boolean} a Boolean value.
     */
    getBoolean(): boolean;
    /**
     * Get a randomly generated sample String value with lower and upper bound.
     * @param {number} minLength the lower bound on the range, inclusive.
     * @param {number} maxLength the upper bound on the range, inclusive.
     * @return {string} a String value.
     */
    getString(minLength: any, maxLength: any): any;
    /**
     * Get a randomly selected enum value from the supplied array.
     * @param {Array} enumValues Array of possible enum values.
     * @return {*} an enum value.
     */
    getEnum(enumValues: any): any;
    /**
     * Get a map instance with randomly generated values for key & value.
     * @return {*} a map value.
     */
    getMap(): Map<any, any>;
    /**
     * Get an array using the supplied callback to obtain array values.
     * @param {Function} valueSupplier - callback to obtain values.
     * @return {Array} an array
     */
    getArray<T>(valueSupplier: () => T): T[];
    /**
     * Get a randomly generated sample regex String value with lower and upper bound.
     * @param {RegExp} regex A regular expression.
     * @param {number} minLength the lower bound on the range, inclusive.
     * @param {number} maxLength the upper bound on the range, inclusive.
     * @return {string} a String value.
     */
    getRegex(regex: any, minLength: any, maxLength: any): any;
    /**
     * Get a random value from the range.
     * @param {number} lowerBound the lower bound on the range, inclusive.
     * @param {number} upperBound the upper bound on the range, inclusive.
     * @param {string} type the number type for the range,
     *  `'Long'`, `'Double'`, or `'Integer'`
     * @return {number} a number.
     */
    getRange(lowerBound: any, upperBound: any, type: any): number;
}
/**
 * Factory providing static methods to create ValueGenerator instances.
 * @private
 */
declare class ValueGeneratorFactory {
    /**
     * Create a value generator that supplies empty values.
     * @return {ValueGenerator} a value generator.
     */
    static empty(): EmptyValueGenerator;
    /**
     * Create a value generator that supplies randomly generated sample values.
     * @return {ValueGenerator} a value generator.
     */
    static sample(): SampleValueGenerator;
}
export = ValueGeneratorFactory;
