setConditions (conditions) {
    if (
      !Object.prototype.hasOwnProperty.call(conditions, 'all') &&
      !Object.prototype.hasOwnProperty.call(conditions, 'any') &&
      !Object.prototype.hasOwnProperty.call(conditions, 'not') &&
      !Object.prototype.hasOwnProperty.call(conditions, 'condition')
    ) {
      throw new Error(
        '"conditions" root must contain a single instance of "all", "any", "not", or "condition"'
      )
    }
    this.conditions = new Condition(conditions)
    return this
  }
Sets the conditions to run when evaluating the rule.
@param {object} conditions - conditions, root element must be a boolean operator