@class NSIndexSet, NSString, NSMutableDictionary, NSMutableSet, NSObject, NSMutableArray; @protocol OS_nw_listener, IDSLinkDelegate; @interface IDSNWLink : NSObject { BOOL _isInvalidated; BOOL _wantsWiFi; BOOL _wantsCellular; BOOL _isDefaultPairedDevice; BOOL _transactionIDMismatchReported; BOOL _shouldFailConnectionsRandomly; struct _opaque_pthread_t { long long x0; struct __darwin_pthread_handler_rec *x1; char x2[8176]; } *_nwtid; struct os_unfair_lock_s { unsigned int _os_unfair_lock_opaque; } _lock; unsigned char _clientUUID[16]; NSObject *_listener; NSObject *_cellularListener; NSMutableArray *_recentQRServerList; NSMutableArray *_tokensForUDPConnectionInProgress; NSMutableArray *_cellularPortList; NSMutableDictionary *_queuedPeelOffs; NSMutableDictionary *_tokenToNWLinkConnection; NSMutableDictionary *_tokenToChildConnectionEvaluator; NSMutableSet *_rootConnections; NSMutableDictionary *_interfaceIndexToNAT64LocalAddress; NSMutableDictionary *_portToExtraListener; } @property (nonatomic) unsigned short port; @property (nonatomic) unsigned short cellularPort; @property (nonatomic) BOOL useDefaultInterfaceOnly; @property (retain, nonatomic) NSIndexSet *cellularInterfaceIndices; @property (nonatomic) BOOL wifiAssistEnabled; @property (nonatomic) BOOL connectedToQR; @property (nonatomic) BOOL disallowQUICPodForCellular; @property (nonatomic) BOOL disableP2P; @property (retain) NSString *cbuuid; @property (retain) NSString *deviceUniqueID; @property (readonly, getter=linkTypeString) NSString *linkTypeString; @property (readonly) unsigned long long state; @property (readonly) unsigned long long headerOverhead; @property (weak) id delegate; @property (weak) id alternateDelegate; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; + (id)derivePSKFromSessionKey:(id)a0 salt:(id)a1; + (BOOL)isSkywalkDemuxSupported; - (void)dealloc; - (void)cleanup; - (void)invalidate; - (void)_cleanup:(BOOL)a0; - (void).cxx_destruct; - (void)_cancelNWLinkConnection:(id)a0 remove:(BOOL)a1; - (void)_removeUDPConnectionInProgress:(id)a0; - (id)_findListenerWithLocalEndpoint:(id)a0; - (unsigned int)_NAT64LocalAddressForInterfaceIndex:(unsigned int)a0; - (id)_NWLinkConnectionForToken:(id)a0; - (void)_addChildConnectionEvaluator:(id)a0 token:(id)a1; - (void)_addExtraListener:(id)a0 port:(unsigned short)a1 isCellular:(BOOL)a2; - (void)_addInterfaceIndex:(unsigned int)a0 NAT64LocalAddress:(unsigned int)a1; - (void)_addNWLinkConnection:(id)a0 token:(id)a1; - (void)_addToRecentQRServerList:(id)a0; - (void)_addUDPConnectionInProgress:(id)a0; - (void)_cancelNWLinkConnectionWithToken:(id)a0 removeNWLinkConnectionNow:(BOOL)a1; - (id)_childConnectionEvaluatorForToken:(id)a0; - (id)_copyChildConnectionIDFor:(id)a0 clientUniquePID:(unsigned long long)a1 sessionID:(id)a2 isRelay:(BOOL)a3 isCellular:(BOOL)a4 isQUICPod:(BOOL)a5; - (BOOL)_createChannelDataConnection:(id)a0; - (BOOL)_createChannelDataConnection:(id)a0 retryIndex:(unsigned char)a1; - (void)_createChannelDataConnectionForH2:(id)a0; - (void)_createChannelDataConnectionForH2:(id)a0 retryIndex:(unsigned char)a1; - (void)_createIndicationConnection:(id)a0; - (void)_createIndicationConnection:(id)a0 retryIndex:(unsigned char)a1; - (id)_createNetworkInterfaceArrayWithIPVersion:(unsigned long long)a0 wantsWiFi:(BOOL)a1 wantsCellular:(BOOL)a2; - (id)_createNewListenerWithLocalPort:(unsigned short *)a0; - (id)_createP2PQUICPodConnectionWithType:(unsigned int)a0 udpNWLinkConnection:(id)a1 clientQUICConnectionID:(id)a2 serverQUICConnectionID:(id)a3 clientQUICConnectionIDNumber:(unsigned int)a4 clientSecret:(id)a5 serverSecret:(id)a6 isServer:(BOOL)a7 completionHandler:(id /* block */)a8; - (id)_createQUICPodConnectionWithType:(unsigned int)a0 quicNWLinkConnection:(id)a1 clientQUICConnectionID:(id)a2 clientQUICConnectionIDAsNumber:(unsigned int)a3 serverQUICConnectionID:(id)a4; - (BOOL)_createReliableUnicastConnection:(id)a0 localQUICConnectionID:(id)a1; - (void)_createUDPConnectionForNWLinkConnection:(id)a0 readyHandler:(id /* block */)a1; - (id)_dictionaryFromPSKParameters:(id)a0; - (BOOL)_doesUDPConnectionInProgressExist:(id)a0; - (id)_extraListenerForPort:(unsigned short)a0; - (void)_failConnectionsRandomly; - (void)_failNWLinkConnection:(id)a0; - (BOOL)_findExistingCollidingQRConnection:(id)a0 remoteEndpoint:(id)a1 sessionID:(id)a2 localEndpointToUse:(id *)a3; - (id)_findNewLocalEndpointForQRConnection:(id)a0; - (void)_handleIncomingIndicationMessage:(id)a0; - (void)_handleIncomingMessage:(id)a0 keepWaiting:(BOOL)a1; - (BOOL)_isLocalEndpointCellular:(id)a0; - (void)_peelOffQUICConnection:(id)a0 type:(unsigned long long)a1 readyHandler:(id /* block */)a2; - (void)_peelOffQUICConnection:(id)a0 type:(unsigned long long)a1 readyHandler:(id /* block */)a2 cancelHandler:(id /* block */)a3; - (void)_removeExtraListener:(unsigned short)a0; - (void)_removeNWLinkConnection:(id)a0 token:(id)a1; - (void)_scheduleRetryConnectionIfNeeded:(id)a0 baseConnection:(id)a1 kind:(const char *)a2 retryIndex:(unsigned char)a3 retryBlock:(id /* block */)a4; - (unsigned long long)_sendData:(id)a0 withPacketBuffer:(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 NWLinkConnection:(id)a2; - (BOOL)_setParameters:(id)a0 NWLinkConnection:(id)a1 sharePortWithListener:(BOOL)a2 isTCP:(BOOL)a3; - (void)_setWiFiAssistStateForCellularLink:(id)a0 isEnabled:(BOOL)a1; - (BOOL)_shouldAllowP2PConnectionTo:(id)a0 anotherRemoteEndpoint:(id)a1; - (BOOL)_shouldFail; - (void)_tryReadH2Header:(id)a0; - (BOOL)connect:(int)a0 localAddress:(const struct sockaddr { unsigned char x0; unsigned char x1; char x2[14]; } *)a1 remoteAddress:(const struct sockaddr { unsigned char x0; unsigned char x1; char x2[14]; } *)a2 clientUUID:(unsigned char[16])a3 sessionID:(id)a4 relaySessionToken:(id)a5 relaySessionKey:(id)a6 randomSaltBlock:(id /* block */)a7 pskTransportParameters:(id)a8 pskH3Settings:(id)a9 newLocalPort:(unsigned short *)a10 disconnectAfterUse:(BOOL)a11 holdUntilFirstPacketReady:(BOOL)a12 readyHandler:(id /* block */)a13; - (BOOL)connectTCP:(int)a0 localAddress:(const struct sockaddr { unsigned char x0; unsigned char x1; char x2[14]; } *)a1 remoteAddress:(const struct sockaddr { unsigned char x0; unsigned char x1; char x2[14]; } *)a2 clientUUID:(unsigned char[16])a3 sessionID:(id)a4 relaySessionToken:(id)a5 relaySessionKey:(id)a6 randomSaltBlock:(id /* block */)a7 newLocalPort:(unsigned short *)a8 disconnectAfterUse:(BOOL)a9 readyHandler:(id /* block */)a10; - (id)connectionInfoForLocalAddress:(const struct sockaddr { unsigned char x0; unsigned char x1; char x2[14]; } *)a0 remoteAddress:(const struct sockaddr { unsigned char x0; unsigned char x1; char x2[14]; } *)a1 clientUniquePID:(unsigned long long)a2 sessionID:(id)a3 type:(unsigned long long)a4 isRelay:(BOOL)a5 isCellular:(BOOL)a6; - (id)copyCurrentNetworkInterfaces; - (id)copyLinkStatsDict; - (BOOL)createQUICPodP2PConnectionsForSession:(id)a0 localAddress:(const struct sockaddr { unsigned char x0; unsigned char x1; char x2[14]; } *)a1 remoteAddress:(const struct sockaddr { unsigned char x0; unsigned char x1; char x2[14]; } *)a2 quicConnectionIDs:(id)a3 negotiatedKeys:(id)a4 channelNumber:(unsigned short)a5 completionHandler:(id /* block */)a6; - (BOOL)createQUICPodQRConnectionsForSession:(id)a0 localAddress:(const struct sockaddr { unsigned char x0; unsigned char x1; char x2[14]; } *)a1 remoteAddress:(const struct sockaddr { unsigned char x0; unsigned char x1; char x2[14]; } *)a2 quicConnectionIDs:(id)a3 channelNumber:(unsigned short)a4; - (struct { unsigned char x0[5]; unsigned char x1[5]; })demuxPatternForQPodConnectionWithID:(unsigned int)a0 forNWLinkConnection:(id)a1; - (void)disconnectP2PWithSessionID:(id)a0 localAddress:(const struct sockaddr { unsigned char x0; unsigned char x1; char x2[14]; } *)a1 remoteAddress:(const struct sockaddr { unsigned char x0; unsigned char x1; char x2[14]; } *)a2; - (void)disconnectWithSessionID:(id)a0 localAddress:(const struct sockaddr { unsigned char x0; unsigned char x1; char x2[14]; } *)a1 remoteAddress:(const struct sockaddr { unsigned char x0; unsigned char x1; char x2[14]; } *)a2 waitTime:(double)a3 final:(BOOL)a4; - (id)generateLinkReport:(double)a0 isCurrentLink:(BOOL)a1; - (BOOL)getEffectiveSourceAddress:(struct sockaddr_storage { unsigned char x0; unsigned char x1; char x2[6]; long long x3; char x4[112]; } *)a0 fromSourceAddress:(const struct sockaddr { unsigned char x0; unsigned char x1; char x2[14]; } *)a1 effectiveDestinationAddress:(struct sockaddr_storage { unsigned char x0; unsigned char x1; char x2[6]; long long x3; char x4[112]; } *)a2 fromDestinationAddress:(const struct sockaddr { unsigned char x0; unsigned char x1; char x2[14]; } *)a3 sessionID:(id)a4 isQRConnection:(BOOL)a5; - (BOOL)hasListener; - (id)initWithDeviceUniqueID:(id)a0 cbuuid:(id)a1; - (void)logConnectionSubtree:(id)a0 indentation:(id)a1; - (void)logConnectionTree; - (id)newListenerWithClientUUID:(unsigned char[16])a0 wantsWiFi:(BOOL)a1 wantsCellular:(BOOL)a2; - (void)peelOffReliableUnicastConnectionforLocalAddress:(const struct sockaddr { unsigned char x0; unsigned char x1; char x2[14]; } *)a0 remoteAddress:(const struct sockaddr { unsigned char x0; unsigned char x1; char x2[14]; } *)a1 sessionID:(id)a2 localQUICConnectionID:(id)a3; - (id)protocolStackDescriptionFor:(id)a0; - (void)removeChildConnectionEvaluatorForSessionID:(id)a0 localAddress:(const struct sockaddr { unsigned char x0; unsigned char x1; char x2[14]; } *)a1 remoteAddress:(const struct sockaddr { unsigned char x0; unsigned char x1; char x2[14]; } *)a2 isRelay:(BOOL)a3; - (unsigned long long)sendPacketBuffer:(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]; } *)a0 toDeviceUniqueID:(id)a1 cbuuid:(id)a2; - (unsigned long long)sendPacketBufferArray:(struct **)a0 arraySize:(int)a1 toDeviceUniqueID:(id)a2 cbuuid:(id)a3; - (void)setWiFiAssistState:(BOOL)a0; @end