DecisionNode: attribute: string children: DecisionNode[] totalWeight: number addValueNode(value: any , attribute: string ): DecisionNode addPredicateNode(predicate: Predicate , attribute: string ): DecisionNode addWeightNode(weight: any , attribute: string ): DecisionNode evaluate(answers: any ): string assert(value: any ): boolean