@class NSArray; @protocol VCConnectionProtocol; @interface VCConnectionSelector : NSObject { id _primaryConnection; BOOL _isMultiwaySession; struct { BOOL preferRelayOverP2P; BOOL preferIPv6OverIPv4; BOOL preferNonVPN; BOOL e2eCriteriaEnabled; BOOL preferE2E; } _connectionSelectionPolicy; struct { id primaryConnection; id secondaryConnection; } _endToEndLinks; } @property (retain, nonatomic) id secondaryConnection; @property (retain, nonatomic) id lastPrimaryConnectionInUse; @property (retain, nonatomic) id connectionForDuplication; @property (retain, nonatomic) id connectionForDuplicationNonProbingVersion; @property (copy, nonatomic) NSArray *linkPreferenceOrder; @property (readonly) struct { id primaryConnection; id secondaryConnection; } serverLinks; @property BOOL canUseP2PLinks; - (void)dealloc; - (id)connectionForGroupType:(unsigned char)a0 isPrimary:(BOOL)a1; - (struct { BOOL x0; BOOL x1; BOOL x2; BOOL x3; BOOL x4; } *)getConnectionSelectionPolicy; - (id)initWithMultiwayEnabled:(BOOL)a0; - (BOOL)isPrimaryConnectionSameAsConnection:(id)a0; - (void)selectConnectionForGroupType:(unsigned char)a0 fromConnectionArray:(id)a1 asPrimary:(BOOL)a2; - (BOOL)selectPrimaryAndSecondaryWithConnection:(id)a0 isEndToEnd:(BOOL)a1; - (void)updateConnectionSelectionPolicyWithPreferRelayOverP2P:(BOOL)a0 preferNonVPN:(BOOL)a1 preferE2E:(BOOL)a2; - (void)updatePrimaryWithConnection:(id)a0; - (void)updateSecondaryWithConnection:(id)a0; - (void)updateSelectedConnectionsForGroupType:(unsigned char)a0 connectionAdded:(id)a1; - (void)updateSelectedConnectionsForGroupType:(unsigned char)a0 connectionRemoved:(id)a1 connectionArray:(id)a2; - (void)useConnectionAsPrimary:(id)a0; @end