@class NSUUID, IDSStunCandidate, NSString, NSData, IDSQuickRelaySessionInfo, NSMutableDictionary, NSDictionary, NSObject, NSMutableArray, IDSGFTMetricsLink, IDSQUICConnectionIDs, NSMutableSet; @protocol IDSGlobalLinkP2PKeyNegotiationProtocol, OS_dispatch_source, IDSStunCandidatePairDelegate, IDSGlobalLinkP2PNegotiatedKeysProtocol; @interface IDSStunCandidatePair : NSObject { id _delegate; NSMutableSet *_pendingProtoRequests; NSMutableDictionary *_requestIDToQueryLinkIDs; NSMutableDictionary *_requestIDToSessionInfoReqType; NSMutableDictionary *_stunSentBytesToRequestID; NSMutableDictionary *_pluginNameToStunReqID; NSMutableDictionary *_requestIDToStatsIDs; NSObject *_sessionConnectedTimer; id /* block */ _sessionConnectedTimeoutBlock; NSObject *_sessionConvergenceTimer; id /* block */ _sessionConvergenceBlock; NSObject *_sessionGoAwayTimer; id /* block */ _sessionGoAwayBlock; NSObject *_reallocTimer; NSObject *_noSessionStateTimer; unsigned short _testRequestedMessageType; NSObject *_probingTimer; BOOL _isPseudoParticipant; BOOL _callScreeningMode; } @property (nonatomic) unsigned long long state; @property (readonly) IDSStunCandidate *local; @property (readonly) IDSStunCandidate *remote; @property (retain) IDSStunCandidate *relayRemote; @property (nonatomic) BOOL isNominated; @property (nonatomic) BOOL isActive; @property (nonatomic) BOOL isConnectToQRIPv6Enabled; @property (nonatomic) double lastIncomingPacketTime; @property (nonatomic) double lastOutgoingPacketTime; @property (nonatomic) double lastStatsReport; @property (nonatomic) unsigned int totalPacketsSentOnLink; @property (nonatomic) unsigned int totalPacketsReceivedOnLink; @property (nonatomic) BOOL hbStarted; @property (nonatomic) double hbStartTime; @property (readonly, nonatomic) unsigned short hbCounter; @property (readonly, nonatomic) unsigned char statsIntervalInSeconds; @property (readonly) NSData *hbhSalt; @property (copy) NSData *hbhEncKey; @property (copy) NSData *hbhDecKey; @property (nonatomic) char linkID; @property (copy) NSUUID *linkUUID; @property (retain) NSObject *allocbindFailoverTimer; @property (readonly) NSString *sessionID; @property (readonly) NSData *relaySessionToken; @property (readonly) NSData *relaySessionKey; @property (readonly) NSString *pskTransportParameters; @property (readonly) NSString *pskH3Settings; @property (readonly) IDSQuickRelaySessionInfo *relaySessionInfo; @property (readonly) NSDictionary *sessionInfoDict; @property (nonatomic) unsigned short channelNumber; @property (readonly, nonatomic) unsigned short relayLinkID; @property (nonatomic) BOOL isAcceptedRelaySession; @property (nonatomic) unsigned long long participantID; @property (readonly, nonatomic) unsigned long long capabilityFlags; @property (readonly, nonatomic) unsigned int stateFlags; @property (readonly, nonatomic) unsigned char protocolVersion; @property (readonly, nonatomic) BOOL isInitiator; @property (readonly, nonatomic) BOOL enableSKE; @property (readonly) NSData *softwareData; @property (readonly) NSString *appName; @property (readonly) NSMutableArray *pendingStunRequests; @property (readonly) NSMutableArray *repliedStunRequests; @property (copy) NSUUID *defaultLocalDeviceCBUUID; @property (copy) NSUUID *defaultRemoteDeviceCBUUID; @property (copy) NSString *groupID; @property (nonatomic) BOOL isQUIC; @property (nonatomic) long long relayProviderType; @property (nonatomic) long long allocateType; @property (nonatomic) double allocateTime; @property (nonatomic) double selfAllocateStartTime; @property (readonly, nonatomic) double testStartTime; @property (nonatomic) double serverLatency; @property (readonly, nonatomic) unsigned int sessionInfoReqCount; @property (nonatomic) BOOL recvSKEData; @property (nonatomic) BOOL sentSKEData; @property (copy) NSData *skeData; @property (nonatomic) BOOL pendingRealloc; @property (nonatomic) BOOL pendingNoSessionStateAllocbind; @property (nonatomic) BOOL recvConnected; @property (nonatomic) BOOL recvConnectedAck; @property (nonatomic) BOOL recvDisconnected; @property (nonatomic) BOOL recvDisconnectedAck; @property (nonatomic) BOOL isRealloc; @property (readonly) NSData *encKey; @property (readonly) NSData *decKey; @property (readonly) NSData *hmacKey; @property (readonly) NSDictionary *participantIDMap; @property (readonly, nonatomic) BOOL serverIsDegraded; @property (nonatomic) BOOL isDisconnecting; @property (nonatomic) double triggeredCheckTime; @property (readonly, nonatomic) unsigned int testOptions; @property (readonly, nonatomic) unsigned short testRequestedErrorCode; @property (readonly) NSString *testSubOperation; @property (readonly, nonatomic) unsigned short remoteRelayLinkID; @property (readonly, nonatomic) char delegatedLinkID; @property (readonly, nonatomic) NSDictionary *URIToParticipantIDs; @property (retain, nonatomic) IDSQUICConnectionIDs *QUICConnectionIDs; @property (readonly) NSMutableDictionary *connections; @property (nonatomic) unsigned long long remoteParticipantID; @property (retain, nonatomic) id p2pNegotiation; @property (retain, nonatomic) id p2pNegotiatedKeys; @property (retain, nonatomic) IDSGFTMetricsLink *linkMetrics; + (id)candidatePairWithLocalCandidate:(id)a0 remoteCandidate:(id)a1 sessionID:(id)a2 delegate:(id)a3; - (void)dealloc; - (void)invalidate; - (id)description; - (void)sendTestRequest:(id)a0; - (void).cxx_destruct; - (BOOL)isEqual:(id)a0; - (unsigned long long)createAliasForParticipantID:(unsigned long long)a0 salt:(id)a1; - (unsigned long long)participantIDForAlias:(unsigned long long)a0 salt:(id)a1; - (BOOL)_didLocalExternalAddressChange:(const struct sockaddr { unsigned char x0; unsigned char x1; char x2[14]; } *)a0; - (void)addStunRequest:(id)a0; - (BOOL)isVirtualRelayStunCandidatePair; - (BOOL)processQUICErrorResponse:(id)a0 packetBuffer:(struct { char *x0; unsigned long long x1; long long x2; long long x3; unsigned int x4; BOOL x5; BOOL x6; BOOL x7; BOOL x8; BOOL x9; BOOL x10; BOOL x11; BOOL x12; BOOL x13; BOOL x14; BOOL x15; unsigned int x16; struct sockaddr_storage { unsigned char x0; unsigned char x1; char x2[6]; long long x3; char x4[112]; } x17; struct sockaddr_storage { unsigned char x0; unsigned char x1; char x2[6]; long long x3; char x4[112]; } x18; struct sockaddr_storage { unsigned char x0; unsigned char x1; char x2[6]; long long x3; char x4[112]; } x19; unsigned short x20; unsigned char x21; int x22; struct { char *x0; unsigned short x1; int x2; unsigned short x3[12]; unsigned long long x4; unsigned char x5; unsigned short x6; unsigned char x7; BOOL x8; BOOL x9; unsigned short x10; struct { unsigned short x0; unsigned short x1; unsigned short x2; unsigned short x3; unsigned short x4; } x11; BOOL x12; BOOL x13; int x14; unsigned short x15[4]; unsigned char x16; BOOL x17; BOOL x18; BOOL x19; unsigned int x20; } x23[8]; char x24; char x25; int x26; double x27; unsigned char x28[16]; unsigned long long x29; unsigned long long x30; id x31; int x32; unsigned int x33; unsigned short x34; unsigned char x35[0]; } *)a1 startTime:(double)a2 headerOverhead:(unsigned long long)a3; - (BOOL)processQUICPutMaterialResponse:(id)a0; - (void)sendSessionInfoRequest:(id)a0 options:(id)a1; - (void)setRelayLinkID:(unsigned short)a0; - (BOOL)isSelfQRSession; - (BOOL)processPluginControlIndication:(id)a0; - (BOOL)processQUICGetMaterialResponse:(id)a0; - (void)_addParticipantIDs:(id)a0 toParticipantIDMap:(id)a1; - (void)_handleLinkProbingTimer; - (void)_handleNoSessionStateTimer; - (void)_handleReallocTimer; - (void)_handleSessionConnectedTimer; - (void)_handleSessionConvergenceTimer; - (void)_handleSessionGoAwayTimer; - (void)_notifyQREventAdded:(id)a0; - (void)_notifySessionStreamInfoReceived:(id)a0 withParticipants:(id)a1 lightweightParticipants:(id)a2 sentBytes:(unsigned long long)a3 receivedBytes:(unsigned long long)a4 offlineRequest:(BOOL)a5 streamInfoRequest:(BOOL)a6 status:(unsigned int)a7 commandFlag:(unsigned int)a8; - (BOOL)_optionallyCheckEncMarker:(id)a0; - (id)_pluginNameForProtoRequest:(unsigned long long)a0; - (id)_pluginNameForStunRequest:(id)a0; - (void)_removeProtoPluginRegistrationRequest:(unsigned long long)a0; - (void)_removeStunPluginRegistrationRequest:(id)a0; - (void)_savePluginNameForProtoRequest:(unsigned long long)a0 pluginName:(id)a1; - (void)_savePluginNameForRequest:(id)a0 pluginName:(id)a1; - (void)_startNoSessionStateTimer; - (void)_startReallocTimer; - (void)_stopNoSessionStateTimer; - (void)_stopReallocTimer; - (void)addProtoRequest:(unsigned long long)a0; - (id)candidatePairToken; - (void)deriveAES128CTRKeys:(id)a0; - (unsigned long long)getParticipantIDHash:(id)a0; - (unsigned long long)getStunSentBytes:(id)a0; - (BOOL)hasNoSessionStateTestOptions; - (BOOL)hasValidCapabilityFlags; - (void)initParticipantIDMap:(id)a0; - (id)initWithLocalCandidate:(id)a0 remoteCandidate:(id)a1 sessionID:(id)a2 delegate:(id)a3; - (BOOL)isActualRelayStunCandidatePair; - (BOOL)isRelayStunCandidatePair; - (BOOL)isSharedQRSession; - (BOOL)isValidRelayStunCandidatePair; - (unsigned int)nextSessionInfoReqID; - (BOOL)processDataMessageErrorIndication:(id)a0; - (BOOL)processInfoIndication:(id)a0 arrivalTime:(double)a1; - (BOOL)processInfoResponse:(id)a0 packetBuffer:(struct { char *x0; unsigned long long x1; long long x2; long long x3; unsigned int x4; BOOL x5; BOOL x6; BOOL x7; BOOL x8; BOOL x9; BOOL x10; BOOL x11; BOOL x12; BOOL x13; BOOL x14; BOOL x15; unsigned int x16; struct sockaddr_storage { unsigned char x0; unsigned char x1; char x2[6]; long long x3; char x4[112]; } x17; struct sockaddr_storage { unsigned char x0; unsigned char x1; char x2[6]; long long x3; char x4[112]; } x18; struct sockaddr_storage { unsigned char x0; unsigned char x1; char x2[6]; long long x3; char x4[112]; } x19; unsigned short x20; unsigned char x21; int x22; struct { char *x0; unsigned short x1; int x2; unsigned short x3[12]; unsigned long long x4; unsigned char x5; unsigned short x6; unsigned char x7; BOOL x8; BOOL x9; unsigned short x10; struct { unsigned short x0; unsigned short x1; unsigned short x2; unsigned short x3; unsigned short x4; } x11; BOOL x12; BOOL x13; int x14; unsigned short x15[4]; unsigned char x16; BOOL x17; BOOL x18; BOOL x19; unsigned int x20; } x23[8]; char x24; char x25; int x26; double x27; unsigned char x28[16]; unsigned long long x29; unsigned long long x30; id x31; int x32; unsigned int x33; unsigned short x34; unsigned char x35[0]; } *)a1 headerOverhead:(unsigned long long)a2; - (BOOL)processParticipantUpdateIndication:(id)a0 arrivalTime:(double)a1; - (BOOL)processParticipantUpdateResponse:(id)a0; - (BOOL)processPluginRegistrationResponse:(id)a0; - (BOOL)processQUICErrorIndication:(id)a0; - (BOOL)processQUICInfoResponse:(id)a0 receivedBytes:(unsigned long long)a1; - (BOOL)processQUICParticipantUpdateIndication:(id)a0; - (BOOL)processQUICParticipantUpdateResponse:(id)a0; - (BOOL)processQUICPluginControlIndication:(id)a0; - (BOOL)processQUICPluginRegistrationResponse:(id)a0; - (BOOL)processQUICPutMaterialIndication:(id)a0; - (BOOL)processQUICSessionInfoIndication:(id)a0 arrivalTime:(double)a1 isLightweightParticipant:(BOOL)a2; - (BOOL)processQUICSessionInfoResponse:(id)a0 receivedBytes:(unsigned long long)a1 isLightweightParticipant:(BOOL)a2; - (BOOL)processQUICStatsResponse:(id)a0 arrivalTime:(double)a1; - (BOOL)processQUICTestResponse:(id)a0 arrivalTime:(double)a1; - (BOOL)processSessionInfoIndication:(id)a0 arrivalTime:(double)a1 isLightweightParticipant:(BOOL)a2; - (void)processSessionInfoRequestTimeout:(id)a0; - (BOOL)processSessionInfoResponse:(id)a0 packetBuffer:(struct { char *x0; unsigned long long x1; long long x2; long long x3; unsigned int x4; BOOL x5; BOOL x6; BOOL x7; BOOL x8; BOOL x9; BOOL x10; BOOL x11; BOOL x12; BOOL x13; BOOL x14; BOOL x15; unsigned int x16; struct sockaddr_storage { unsigned char x0; unsigned char x1; char x2[6]; long long x3; char x4[112]; } x17; struct sockaddr_storage { unsigned char x0; unsigned char x1; char x2[6]; long long x3; char x4[112]; } x18; struct sockaddr_storage { unsigned char x0; unsigned char x1; char x2[6]; long long x3; char x4[112]; } x19; unsigned short x20; unsigned char x21; int x22; struct { char *x0; unsigned short x1; int x2; unsigned short x3[12]; unsigned long long x4; unsigned char x5; unsigned short x6; unsigned char x7; BOOL x8; BOOL x9; unsigned short x10; struct { unsigned short x0; unsigned short x1; unsigned short x2; unsigned short x3; unsigned short x4; } x11; BOOL x12; BOOL x13; int x14; unsigned short x15[4]; unsigned char x16; BOOL x17; BOOL x18; BOOL x19; unsigned int x20; } x23[8]; char x24; char x25; int x26; double x27; unsigned char x28[16]; unsigned long long x29; unsigned long long x30; id x31; int x32; unsigned int x33; unsigned short x34; unsigned char x35[0]; } *)a1 headerOverhead:(unsigned long long)a2 isLightweightParticipant:(BOOL)a3; - (BOOL)processStatsResponse:(id)a0 arrivalTime:(double)a1; - (BOOL)processStunErrorResponse:(id)a0 packetBuffer:(struct { char *x0; unsigned long long x1; long long x2; long long x3; unsigned int x4; BOOL x5; BOOL x6; BOOL x7; BOOL x8; BOOL x9; BOOL x10; BOOL x11; BOOL x12; BOOL x13; BOOL x14; BOOL x15; unsigned int x16; struct sockaddr_storage { unsigned char x0; unsigned char x1; char x2[6]; long long x3; char x4[112]; } x17; struct sockaddr_storage { unsigned char x0; unsigned char x1; char x2[6]; long long x3; char x4[112]; } x18; struct sockaddr_storage { unsigned char x0; unsigned char x1; char x2[6]; long long x3; char x4[112]; } x19; unsigned short x20; unsigned char x21; int x22; struct { char *x0; unsigned short x1; int x2; unsigned short x3[12]; unsigned long long x4; unsigned char x5; unsigned short x6; unsigned char x7; BOOL x8; BOOL x9; unsigned short x10; struct { unsigned short x0; unsigned short x1; unsigned short x2; unsigned short x3; unsigned short x4; } x11; BOOL x12; BOOL x13; int x14; unsigned short x15[4]; unsigned char x16; BOOL x17; BOOL x18; BOOL x19; unsigned int x20; } x23[8]; char x24; char x25; int x26; double x27; unsigned char x28[16]; unsigned long long x29; unsigned long long x30; id x31; int x32; unsigned int x33; unsigned short x34; unsigned char x35[0]; } *)a1 headerOverhead:(unsigned long long)a2; - (BOOL)processTestResponse:(id)a0 arrivalTime:(double)a1; - (void)removeFromParticipantIDMap:(id)a0; - (BOOL)removeProtoRequest:(unsigned long long)a0; - (void)removeStunRequest:(id)a0; - (void)sendInfoRequest:(id)a0; - (void)sendParticipantUpdateRequest:(id)a0 options:(id)a1; - (void)sendQRPluginRegistrationRequest:(id)a0 options:(id)a1; - (BOOL)sendQUICGetMaterialRequest:(id)a0; - (void)sendQUICInfoRequest; - (void)sendQUICParticipantUpdateRequestWithOptions:(id)a0; - (void)sendQUICPluginRegistrationRequestWithOptions:(id)a0; - (BOOL)sendQUICPutMaterialRequest:(id)a0; - (void)sendQUICSessionInfoRequestWithOptions:(id)a0; - (void)sendQUICStatsRequestWithOptions:(id)a0; - (void)sendQUICTestRequest; - (void)sendStatsRequest:(id)a0 options:(id)a1; - (void)setChannelSettings:(unsigned int)a0; - (void)setDelegatedLinkID:(char)a0; - (void)setLinkUUIDWithRelayLinkIDs; - (void)setPendingNoSessionState:(BOOL)a0; - (void)setPropertiesWithReallocCandidatePair:(id)a0 reallocToken:(id)a1; - (void)setPropertiesWithRelaySessionInfo:(id)a0 sessionInfoDict:(id)a1 enableSKE:(BOOL)a2; - (void)setProtocolVersion:(unsigned char)a0 isInitiator:(BOOL)a1 enableSKE:(BOOL)a2; - (void)setRemoteRelayLinkID:(unsigned short)a0; - (void)setServerIsDegraded:(BOOL)a0; - (void)setTestOptionsFromUserDefaults; - (BOOL)shouldProcessStunResponse:(id)a0; - (BOOL)shouldRexmitStunRequest:(id)a0; - (void)startLinkProbingTimer:(unsigned int)a0; - (void)startSessionConnectedTimer:(int)a0 block:(id /* block */)a1; - (void)startSessionConvergenceTimer:(int)a0 block:(id /* block */)a1; - (void)startSessionGoAwayTimer:(int)a0 block:(id /* block */)a1; - (void)stopLinkProbingTimer; - (void)stopSessionConnectedTimer; - (void)stopSessionConvergenceTimer; - (void)stopSessionGoAwayTimer; - (void)synthesizeNat64WithPrefix; - (void)updateParticipantIDMap:(id)a0; - (void)updateStunSentBytes:(long long)a0 requestID:(id)a1; - (void)updateURIToParticipantIDMapping:(id)a0; @end