--- /dev/null
+package jalview.ext.treeviewer;
+
+import jalview.datamodel.SequenceI;
+
+import java.util.Map;
+
+/**
+ * Note that this will take anything as a Tree or TreeNode object as no
+ * assumptions can be made about the inheritance structure of Tree or TreeNode
+ * (besides being Objects).
+ *
+ * @author kjvanderheide
+ *
+ * @param <T>
+ * Tree object that the tree viewer requires.
+ * @param <N>
+ * Tree node object that the tree viewer requires.
+ */
+public interface ExternalTreeBuilderI<T, N>
+{
+ public T buildTree(N treeRoot);
+
+ public T buildTree();
+
+ public Map<SequenceI, N> getAlignmentBoundNodes();
+
+ public Map<N, SequenceI> getNodesBoundAlignment();
+
+ public String generateTreeName();
+
+}