function processMonitorConditions(conditions, parentGroup) {
    conditions.forEach(condition => {
        const andOr = condition.andOr === LOGICAL.OR ? LOGICAL.OR : LOGICAL.AND;

        if (condition.type === "group") {
            const group = new ConditionExpressionGroup([], andOr);

            // Recursively process the group's children
            processMonitorConditions(condition.children, group);

            parentGroup.children.push(group);
        } else if (condition.type === "expression") {
            const expression = new ConditionExpression(condition.variable, condition.operator, condition.value, andOr);
            parentGroup.children.push(expression);
        }
    });
}
Recursively processes an array of raw condition objects and populates the given parent group with
corresponding ConditionExpression or ConditionExpressionGroup instances.
@param {Array} conditions Array of raw condition objects, where each object represents either a group or an expression.
@param {ConditionExpressionGroup} parentGroup The parent group to which the instantiated ConditionExpression or ConditionExpressionGroup objects will be added.
@returns {void}