@interface VNMPImageGrouping : NSObject + (struct vector> { struct MPClusteringTreeNode **x0; struct MPClusteringTreeNode **x1; struct __compressed_pair> { struct MPClusteringTreeNode **x0; } x2; })computeClusteringIntoKGroups:(int)a0 forHierarchicalTree:(struct MPClusteringTreeNode { id x0; int x1; float x2; float x3; int x4; struct MPClusteringTreeNode *x5; struct MPClusteringTreeNode *x6; struct MPClusteringTreeNode *x7; struct MPClusteringTreeNode *x8; } *)a1 context:(id)a2; + (struct vector> { struct MPClusteringTreeNode **x0; struct MPClusteringTreeNode **x1; struct __compressed_pair> { struct MPClusteringTreeNode **x0; } x2; })computeClusteringIntoKGroups:(int)a0 orUsingDistanceThreshold:(float)a1 forHierarchicalTree:(struct MPClusteringTreeNode { id x0; int x1; float x2; float x3; int x4; struct MPClusteringTreeNode *x5; struct MPClusteringTreeNode *x6; struct MPClusteringTreeNode *x7; struct MPClusteringTreeNode *x8; } *)a2 context:(id)a3; + (struct vector> { struct MPClusteringTreeNode **x0; struct MPClusteringTreeNode **x1; struct __compressed_pair> { struct MPClusteringTreeNode **x0; } x2; })computeClusteringUsingDistanceThreshold:(float)a0 forHierarchicalTree:(struct MPClusteringTreeNode { id x0; int x1; float x2; float x3; int x4; struct MPClusteringTreeNode *x5; struct MPClusteringTreeNode *x6; struct MPClusteringTreeNode *x7; struct MPClusteringTreeNode *x8; } *)a1 context:(id)a2; + (long long)computeHierarchicalClusteringOfImageDescriptors:(id)a0 results:(struct MPClusteringTreeNode **)a1 context:(id)a2; + (struct vector> { struct MPClusteringTreeNode **x0; struct MPClusteringTreeNode **x1; struct __compressed_pair> { struct MPClusteringTreeNode **x0; } x2; })computeNaturalClusteringForHierarchicalTree:(struct MPClusteringTreeNode { id x0; int x1; float x2; float x3; int x4; struct MPClusteringTreeNode *x5; struct MPClusteringTreeNode *x6; struct MPClusteringTreeNode *x7; struct MPClusteringTreeNode *x8; } *)a0 context:(id)a1; + (float)computeTimestampAdjustedDistanceForBaseDistance:(float)a0 andTimestampDiff:(long long)a1; + (float)computeTotalDistanceForDescriptorDistance:(float)a0 timestampDiff:(long long)a1 useTimestampAdjustment:(BOOL)a2; + (float)getDistanceForClusterNode:(struct MPClusteringTreeNode { id x0; int x1; float x2; float x3; int x4; struct MPClusteringTreeNode *x5; struct MPClusteringTreeNode *x6; struct MPClusteringTreeNode *x7; struct MPClusteringTreeNode *x8; } *)a0 splitDistanceType:(int)a1; @end