/**
 * @introduction
 * <h2>Finsemble Validate Functions</h2>
 *
 */
/**
 * Constructor for Finsemble argument validator.
 *
 * Validation logic is ONLY RAN when SystemSettings diagnostics level is set to debug (i.e. 4 or above)
 * A failed validation will generate a warning message, but nothing more; however application logic can check the validation results.
 *
 * @param {string} console Finsemble console object used to display messages and check diagnostic level
 * @constructor
 * @shouldBePublished false
 */
export declare class Validate {
    warningMsg(paramDescript: string, thisArg: any, thisArgType: string): void;
    /**
     * Confirm parameters are valid. A variable number of parameter pairs are supported, but rest parameters cannot be typed separately.
     * @param {any} param1 is arg to validate
     * @param {string} paramType1 is required type for parameter (if '=' suffix then parameter is optional). "any" represents any type (but not "undefined").
     * @param {any=} param2 is next arg to validate
     * @param {string=} paramType2 os required type for next arg
     * @return {boolean} returns turn if parameter list is valid; otherwise, false.
     *
     * @example
     *
     * var validate = new Validate();
     * validate.args(name, "string", age, "number")
     *
     * validate.args(topic, "string", initialState, "object="); // with optional paramter (represented by "=")
     *
     * validate.args(topic, "string", initialState, "any"); // with "any" type
     *
     * validate.args(subscribeIDStruct, "object") && validate.args(subscribeIDStruct.subscribeID, "string"); // only do second validate if first test successful
     *
     * validate.args(subscribeIDStruct, "object", subscribeIDStruct.subscribeID, "string"); // only check second parm if first validated successful
     *
     * validate.args(topic, "any", initialState, "object=", params, "object="); // depending on logic, can break into separate validations
     * params = params || {};
     * validate.args(params.subscribeCallback, "function=", params.publishCallback, "function=", params.unsubscribeCallback, "function=");
     */
    args(...args: any[]): boolean;
    /**
     * Confirm parameters are valid. args2() has the same functionality as args() except a third "parameter description" is passed in for each argument verified
     * Typically this for passing in a properties name for better diagnostic messages when verifying object properties.
     * A variable number of parameter "triples"" are supported, but rest parameters cannot be typed separately.
     *
     * @param {string} paramName1 is descriptive name of param1 (for diagnostic message)
     * @param {any} param1 is arg to validate
     * @param {string} paramType1 is required type for parameter (if '=' suffix then parameter is optional). "any" represents any type (but not "undefined").
     * @param {string} paramName2 is descriptive name of param1 (for diagnostic message)
     * @param {any} param2 is arg to validate
     * @param {string} paramType2 is required type for parameter (if '=' suffix then parameter is optional). "any" represents any type (but not "undefined").
     * @return {boolean} returns turn if parameter list is valid; otherwise, false.
     *
     * @example
     *
     * var validate = new Utils.Validate();
     * validate.args2("record.name", record.name, "string", "record.age", age, "number")
     *
     * // common case using args() and args2() together
     * validate.args(topic, "any", initialState, "object=", params, "object=") &&
     *   validate.args2("params.subscribeCallback", params.subscribeCallback, "function=", "params.publishCallback", params.publishCallback, "function=") &&
     *   validate.args2("params.unsubscribeCallback", params.unsubscribeCallback, "function=");
     */
    args2(...args: any[]): boolean;
}
declare const _default: Validate;
export default _default;
//# sourceMappingURL=validate.d.ts.map