text: //
  //     Generated by classdumpios 1.0.1 (64 bit) (iOS port by DreamDevLost)(Debug version compiled Sep 26 2020 13:48:20).
  //
  //  Copyright (C) 1997-2019 Steve Nygard.
  //
  
  #import <objc/NSObject.h>
  
  #import "NDApplicationObserver-Protocol.h"
  #import "NDBackgroundSessionProtocol-Protocol.h"
  #import "NDCallbackQueueDelegate-Protocol.h"
  #import "NDCredentialStorageDelegate-Protocol.h"
  #import "NSURLSessionDataDelegate_Internal-Protocol.h"
  #import "NSURLSessionDelegate_Internal-Protocol.h"
  #import "NSURLSessionDownloadDelegate-Protocol.h"
  #import "NSURLSessionDownloadDelegate_Private-Protocol.h"
  #import "NSURLSessionTaskDelegatePrivate-Protocol.h"
  
  @class NDApplication, NDCallbackQueue, NDCredentialStorage, NSMutableArray, NSMutableDictionary, NSString, NSURL, NSURLSession, NSUUID, NSXPCConnection;
  @protocol NDBackgroundSessionDelegate, NSXPCProxyCreating><NDBackgroundSessionClient, OS_dispatch_queue;
  
  @interface NDBackgroundSession : NSObject <NDBackgroundSessionProtocol, NDCallbackQueueDelegate, NSURLSessionDataDelegate_Internal, NSURLSessionDownloadDelegate, NSURLSessionTaskDelegatePrivate, NSURLSessionDownloadDelegate_Private, NSURLSessionDelegate_Internal, NDCredentialStorageDelegate, NDApplicationObserver>
  {
      NSURLSession *_userInitiatedSession;	// 8 = 0x8
      NSURLSession *_discretionaryPrioritySession;	// 16 = 0x10
      NDCredentialStorage *_credentialStorage;	// 24 = 0x18
      NSObject<OS_dispatch_queue> *_archiveQueue;	// 32 = 0x20
      NDApplication *_clientApplication;	// 40 = 0x28
      NDApplication *_connectedExtension;	// 48 = 0x30
      NSMutableDictionary *_tasksToIdentifiers;	// 56 = 0x38
      NSMutableDictionary *_identifiersToTasks;	// 64 = 0x40
      NSMutableDictionary *_identifiersToMonitors;	// 72 = 0x48
      NSMutableDictionary *_identifiersToStreams;	// 80 = 0x50
      NSMutableDictionary *_identifiersToStreamQueues;	// 88 = 0x58
      NSMutableArray *_outstandingTaskIDs;	// 96 = 0x60
      double _lastArchiveTime;	// 104 = 0x68
      _Bool _archiveWasDeferred;	// 112 = 0x70
      NSURL *_sessionDirectory;	// 120 = 0x78
      NSURL *_downloadDirectory;	// 128 = 0x80
      NSURL *_uploadsDirectory;	// 136 = 0x88
      _Bool _performsEVCertCheck;	// 144 = 0x90
      _Bool _clientImplementsWillSendRequest;	// 145 = 0x91
      _Bool _clientImplementsWillBeginDelayedRequest;	// 146 = 0x92
      _Bool _clientImplementsSessionChallenge;	// 147 = 0x93
      _Bool _clientImplementsTaskChallenge;	// 148 = 0x94
      _Bool _sendsLaunchEvents;	// 149 = 0x95
      _Bool _discretionary;	// 150 = 0x96
      _Bool _obliterated;	// 151 = 0x97
      _Bool _cleanedUp;	// 152 = 0x98
      _Bool _hasBeenSignalledToDeliverPendingEvents;	// 153 = 0x99
      _Bool _infersDiscretionary;	// 154 = 0x9a
      _Bool _shouldPullInitialCredentials;	// 155 = 0x9b
      CDUnknownBlockType _completeReconnectionBlock;	// 160 = 0xa0
      int _clientPID;	// 168 = 0xa8
      NSXPCConnection *_xpcConn;	// 176 = 0xb0
      NSString *_watchExtensionBundleIdentifier;	// 184 = 0xb8
      _Bool _retryDataTasks;	// 192 = 0xc0
      NSObject<OS_dispatch_queue> *_workQueue;	// 200 = 0xc8
      NDCallbackQueue *_callbackQueue;	// 208 = 0xd0
      NDApplication *_monitoredApplication;	// 216 = 0xd8
      NSMutableDictionary *_identifiersToTaskInfo;	// 224 = 0xe0
      id <NSXPCProxyCreating><NDBackgroundSessionClient> _clientProxy;	// 232 = 0xe8
      id <NDBackgroundSessionDelegate> _delegate;	// 240 = 0xf0
      NSUUID *_uuid;	// 248 = 0xf8
      NSString *_identifier;	// 256 = 0x100
      NSString *_clientBundleID;	// 264 = 0x108
      NSString *_monitoredAppBundleID;	// 272 = 0x110
      NSString *_secondaryID;	// 280 = 0x118
      CDUnknownBlockType _invalidateReply;	// 288 = 0x120
      NSString *_sharedContainerIdentifier;	// 296 = 0x128
  }
  
  - (void).cxx_destruct;	// IMP=0x000000010002b518
  @property(copy) NSString *sharedContainerIdentifier; // @synthesize sharedContainerIdentifier=_sharedContainerIdentifier;
  @property(copy) CDUnknownBlockType invalidateReply; // @synthesize invalidateReply=_invalidateReply;
  @property(readonly) NSString *secondaryID; // @synthesize secondaryID=_secondaryID;
  @property(readonly) NSString *monitoredAppBundleID; // @synthesize monitoredAppBundleID=_monitoredAppBundleID;
  @property(readonly) NSString *clientBundleID; // @synthesize clientBundleID=_clientBundleID;
  @property(readonly) NSString *identifier; // @synthesize identifier=_identifier;
  @property(readonly) NSUUID *uuid; // @synthesize uuid=_uuid;
  @property __weak id <NDBackgroundSessionDelegate> delegate; // @synthesize delegate=_delegate;
  - (void)_URLSession:(id)arg1 task:(id)arg2 getAuthHeadersForResponse:(id)arg3 completionHandler:(CDUnknownBlockType)arg4;	// IMP=0x000000010002adc8
  - (void)_URLSession:(id)arg1 openFileAtPath:(id)arg2 mode:(int)arg3 completionHandler:(CDUnknownBlockType)arg4;	// IMP=0x000000010002a990
  - (id)_URLSession:(id)arg1 downloadTaskNeedsDownloadDirectory:(id)arg2;	// IMP=0x000000010002a904
  - (void)_URLSession:(id)arg1 downloadTask:(id)arg2 didReceiveResponse:(id)arg3;	// IMP=0x000000010002a5e4
  - (void)URLSession:(id)arg1 task:(id)arg2 _conditionalRequirementsChanged:(_Bool)arg3;	// IMP=0x000000010002a424
  - (void)URLSession:(id)arg1 task:(id)arg2 _isWaitingForConnectionWithReason:(long long)arg3;	// IMP=0x000000010002a208
  - (void)URLSession:(id)arg1 task:(id)arg2 _willSendRequestForEstablishedConnection:(id)arg3 completionHandler:(CDUnknownBlockType)arg4;	// IMP=0x00000001000299cc
  - (void)URLSession:(id)arg1 downloadTask:(id)arg2 didWriteData:(long long)arg3 totalBytesWritten:(long long)arg4 totalBytesExpectedToWrite:(long long)arg5;	// IMP=0x0000000100029804
  - (void)URLSession:(id)arg1 downloadTask:(id)arg2 didResumeAtOffset:(long long)arg3 expectedTotalBytes:(long long)arg4;	// IMP=0x000000010002957c
  - (void)URLSession:(id)arg1 downloadTask:(id)arg2 didFinishDownloadingToURL:(id)arg3;	// IMP=0x000000010002927c
  - (void)URLSession:(id)arg1 dataTask:(id)arg2 didBecomeDownloadTask:(id)arg3;	// IMP=0x0000000100028e84
  - (void)_URLSession:(id)arg1 dataTask:(id)arg2 didReceiveData:(id)arg3 completionHandler:(CDUnknownBlockType)arg4;	// IMP=0x0000000100028948
  - (void)URLSession:(id)arg1 dataTask:(id)arg2 didReceiveResponse:(id)arg3 completionHandler:(CDUnknownBlockType)arg4;	// IMP=0x00000001000282b8
  - (void)URLSession:(id)arg1 dataTask:(id)arg2 willCacheResponse:(id)arg3 completionHandler:(CDUnknownBlockType)arg4;	// IMP=0x00000001000282a8
  - (void)URLSession:(id)arg1 task:(id)arg2 didCompleteWithError:(id)arg3;	// IMP=0x0000000100027134
  - (void)URLSession:(id)arg1 task:(id)arg2 needNewBodyStream:(CDUnknownBlockType)arg3;	// IMP=0x0000000100026d7c
  - (void)URLSession:(id)arg1 task:(id)arg2 didSendBodyData:(long long)arg3 totalBytesSent:(long long)arg4 totalBytesExpectedToSend:(long long)arg5;	// IMP=0x0000000100026c38
  - (void)URLSession:(id)arg1 task:(id)arg2 willPerformHTTPRedirection:(id)arg3 newRequest:(id)arg4 completionHandler:(CDUnknownBlockType)arg5;	// IMP=0x00000001000260bc
  - (void)URLSession:(id)arg1 task:(id)arg2 didReceiveChallenge:(id)arg3 completionHandler:(CDUnknownBlockType)arg4;	// IMP=0x00000001000252e8
  - (_Bool)trustPassesExtendedValidation:(struct __SecTrust *)arg1;	// IMP=0x000000010002508c
  - (void)URLSession:(id)arg1 didBecomeInvalidWithError:(id)arg2;	// IMP=0x0000000100024f1c
  - (void)invalidateWithReply:(CDUnknownBlockType)arg1;	// IMP=0x0000000100024ce4
  - (void)resetStorageWithReply:(CDUnknownBlockType)arg1;	// IMP=0x0000000100024c84
  - (void)setTLSSessionCachePrefix:(id)arg1;	// IMP=0x0000000100024c10
  - (void)setDiscretionaryOverride:(long long)arg1 forTaskWithIdentifier:(unsigned long long)arg2;	// IMP=0x0000000100024770
  - (void)setTLSMaximumSupportedProtocolVersion:(unsigned short)arg1 forTaskWithIdentifier:(unsigned long long)arg2;	// IMP=0x0000000100024610
  - (void)setTLSMinimumSupportedProtocolVersion:(unsigned short)arg1 forTaskWithIdentifier:(unsigned long long)arg2;	// IMP=0x00000001000244b0
  - (void)setExpectedProgressTarget:(unsigned long long)arg1 forTaskWithIdentifier:(unsigned long long)arg2;	// IMP=0x0000000100024350
  - (void)setBytesPerSecondLimit:(long long)arg1 forTaskWithIdentifier:(unsigned long long)arg2;	// IMP=0x00000001000240e4
  - (void)setLoadingPoolPriority:(double)arg1 forTaskWithIdentifier:(unsigned long long)arg2;	// IMP=0x0000000100023d94
  - (void)setPriority:(long long)arg1 forTaskWithIdentifier:(unsigned long long)arg2;	// IMP=0x00000001000235d0
  - (void)setDescription:(id)arg1 forTask:(unsigned long long)arg2;	// IMP=0x0000000100023450
  - (void)setPropertyOnStreamWithIdentifier:(unsigned long long)arg1 propDict:(id)arg2 propKey:(id)arg3 withReply:(CDUnknownBlockType)arg4;	// IMP=0x000000010002314c
  - (void)resumeTaskWithIdentifier:(unsigned long long)arg1 withProperties:(id)arg2;	// IMP=0x0000000100022cc0
  - (void)suspendTaskWithIdentifier:(unsigned long long)arg1;	// IMP=0x0000000100022a9c
  - (void)cancelTaskWithIdentifier:(unsigned long long)arg1;	// IMP=0x0000000100022844
  - (void)cancelTaskWithIdentifier:(unsigned long long)arg1 byProducingResumeData:(CDUnknownBlockType)arg2;	// IMP=0x000000010002262c
  - (void)avAggregateAssetDownloadTaskWithDownloadToken:(unsigned long long)arg1 serializedMediaSelections:(id)arg2 assetTitle:(id)arg3 assetArtworkData:(id)arg4 options:(id)arg5 childDownloadSessionIdentifier:(id)arg6 identifier:(unsigned long long)arg7 uniqueIdentifier:(id)arg8 reply:(CDUnknownBlockType)arg9;	// IMP=0x000000010002261c
  - (void)avAssetDownloadTaskWithDownloadToken:(unsigned long long)arg1 URL:(id)arg2 destinationURL:(id)arg3 temporaryDestinationURL:(id)arg4 assetTitle:(id)arg5 assetArtworkData:(id)arg6 options:(id)arg7 identifier:(unsigned long long)arg8 uniqueIdentifier:(id)arg9 reply:(CDUnknownBlockType)arg10;	// IMP=0x000000010002260c
  - (void)dataTaskWithRequest:(id)arg1 originalRequest:(id)arg2 identifier:(unsigned long long)arg3 uniqueIdentifier:(id)arg4 reply:(CDUnknownBlockType)arg5;	// IMP=0x0000000100022238
  - (void)uploadTaskWithRequest:(id)arg1 originalRequest:(id)arg2 fromFile:(id)arg3 sandboxExtensionData:(id)arg4 identifier:(unsigned long long)arg5 uniqueIdentifier:(id)arg6 potentialCredentials:(id)arg7 reply:(CDUnknownBlockType)arg8;	// IMP=0x0000000100021b74
  - (void)downloadTaskWithRequest:(id)arg1 originalRequest:(id)arg2 downloadFilePath:(id)arg3 identifier:(unsigned long long)arg4 uniqueIdentifier:(id)arg5 reply:(CDUnknownBlockType)arg6;	// IMP=0x0000000100021594
  - (void)downloadTaskWithResumeData:(id)arg1 identifier:(unsigned long long)arg2 uniqueIdentifier:(id)arg3 reply:(CDUnknownBlockType)arg4;	// IMP=0x000000010002110c
  - (void)pingForXPCObjectValidityWithReply:(CDUnknownBlockType)arg1;	// IMP=0x0000000100021100
  - (void)performCommonSetupForTask:(id)arg1 taskInfo:(id)arg2 identifier:(unsigned long long)arg3 discretionaryStatus:(_Bool)arg4;	// IMP=0x0000000100020c98
  - (void)setupDASPropertiesOnTask:(id)arg1 taskInfo:(id)arg2 discretionaryStatus:(_Bool)arg3;	// IMP=0x0000000100020504
  - (void)wakeUpClient:(long long)arg1;	// IMP=0x000000010001fdb0
  - (void)clientAcknowledgedTerminalCallbackForTask:(unsigned long long)arg1;	// IMP=0x000000010001fa7c
  - (void)errorOccurredDuringAuthCallbackDelivery:(id)arg1 completionHandler:(CDUnknownBlockType)arg2;	// IMP=0x000000010001f914
  - (void)errorOccurredDuringFinishedCallbackDelivery:(id)arg1;	// IMP=0x000000010001f7c0
  - (id)getClientProxy;	// IMP=0x000000010001f7b8
  - (id)inputStreamWithFileHandle:(id)arg1 taskIdentifier:(unsigned long long)arg2;	// IMP=0x000000010001f5dc
  - (id)makeTempUploadFile:(id)arg1 withExtensionData:(id)arg2;	// IMP=0x000000010001f1d0
  - (void)requeueTask:(unsigned long long)arg1;	// IMP=0x000000010001f1c0
  - (void)requeueTask:(unsigned long long)arg1 skipResume:(_Bool)arg2;	// IMP=0x000000010001f164
  - (void)removeOutstandingTaskWithIdentifier:(unsigned long long)arg1;	// IMP=0x000000010001f0f8
  - (void)addOutstandingTaskWithIdentifier:(unsigned long long)arg1;	// IMP=0x000000010001f08c
  - (void)enqueueTaskWithIdentifier:(unsigned long long)arg1;	// IMP=0x000000010001ee4c
  - (void)taskShouldSuspend:(unsigned long long)arg1;	// IMP=0x000000010001eb5c
  - (void)taskShouldResume:(unsigned long long)arg1;	// IMP=0x000000010001e7f4
  - (void)handleWillBeginDelayedRequestForTaskWithIdentifier:(unsigned long long)arg1 completionHandler:(CDUnknownBlockType)arg2;	// IMP=0x000000010001e084
  - (void)handleEarliestBeginDateForTaskWithIdentifier:(unsigned long long)arg1 completionHandler:(CDUnknownBlockType)arg2;	// IMP=0x000000010001db34
  - (void)cancelMonitorForTask:(unsigned long long)arg1;	// IMP=0x000000010001da30
  - (_Bool)currentDiscretionaryStatus:(id)arg1 withOptionalTaskInfo:(id)arg2;	// IMP=0x000000010001d06c
  - (long long)priorityForDiscretionaryStatus:(_Bool)arg1;	// IMP=0x000000010001d058
  - (id)getTLSSessionCachePrefix;	// IMP=0x000000010001d020
  - (id)getTasksForReconnection;	// IMP=0x000000010001ceb4
  - (void)triggerPowerlogPeriodicUpdate;	// IMP=0x000000010001ccfc
  - (void)fillInPropertiesForTaskInfo:(id)arg1 withTaskID:(id)arg2;	// IMP=0x000000010001cc28
  - (void)fillInByteCountsForTaskInfo:(id)arg1 withTaskID:(id)arg2;	// IMP=0x000000010001cb14
  - (void)allowReconnect;	// IMP=0x000000010001cabc
  - (void)reconnectClient:(id)arg1 withCompletion:(CDUnknownBlockType)arg2;	// IMP=0x000000010001c7b4
  - (void)clientDidDisconnect;	// IMP=0x000000010001c5d4
  - (void)cancelTasksRequiringClientConnectionAndResumeUnstartedTasks;	// IMP=0x000000010001c10c
  - (_Bool)finalizeTaskCompletionWithSuppressedWake:(_Bool)arg1;	// IMP=0x000000010001c078
  - (void)handleCompletionOfTask:(id)arg1 identifier:(unsigned long long)arg2 taskInfo:(id)arg3 isRecoverable:(_Bool)arg4 suppressWake:(_Bool)arg5;	// IMP=0x000000010001bfb4
  - (_Bool)clientIsActive;	// IMP=0x000000010001be5c
  - (_Bool)sessionHasOutstandingTasks;	// IMP=0x000000010001bd20
  - (void)removeUploadFileForTaskInfo:(id)arg1;	// IMP=0x000000010001bcac
  - (void)removeDownloadFileForTaskInfo:(id)arg1;	// IMP=0x000000010001bbf4
  - (_Bool)retryTask:(id)arg1 originalError:(id)arg2 transactionMetrics:(id)arg3;	// IMP=0x000000010001b178
  - (id)clientErrorForError:(id)arg1;	// IMP=0x000000010001af00
  - (id)restoreTasks:(_Bool *)arg1;	// IMP=0x000000010001ad7c
  - (id)restoreTasksFromArchivedInfo:(id)arg1;	// IMP=0x000000010001ac7c
  - (id)restoreTask:(id)arg1 isOutstanding:(_Bool *)arg2;	// IMP=0x000000010001a7dc
  - (id)restoreCompletedTask:(id)arg1;	// IMP=0x000000010001a080
  - (id)restoreInProgressTask:(id)arg1;	// IMP=0x0000000100019954
  - (id)createNewTaskFromInfo:(id)arg1;	// IMP=0x0000000100019348
  - (void)ensureSessionDownloadDirectoryExists;	// IMP=0x0000000100019174
  - (void)configureTask:(id)arg1 withTaskInfo:(id)arg2;	// IMP=0x0000000100018ed4
  - (void)configureAdditionalPropertiesOnTask:(id)arg1 taskInfo:(id)arg2;	// IMP=0x0000000100018cac
  - (id)sanitizeTaskProperties:(id)arg1;	// IMP=0x000000010001805c
  - (id)adjustDiscretionaryStatusForTaskInfo:(id)arg1;	// IMP=0x0000000100017fcc
  - (void)updateTaskInfoBasedOnCurrentDiscretionaryStatus:(id)arg1;	// IMP=0x0000000100017d7c
  - (id)requestWithAdjustedWindowForTaskInfo:(id)arg1;	// IMP=0x00000001000179fc
  - (id)descriptionForTCPConnectionWaitingReason:(long long)arg1;	// IMP=0x00000001000178c4
  - (id)descriptionForRequest:(id)arg1;	// IMP=0x0000000100017794
  - (id)descriptionForTaskWithIdentifier:(unsigned long long)arg1;	// IMP=0x00000001000176a4
  - (void)_onqueue_archiveTaskInfo;	// IMP=0x0000000100017588
  - (void)archiveTimerFired;	// IMP=0x0000000100017530
  - (void)archiveTaskInfo:(_Bool)arg1;	// IMP=0x00000001000174c0
  - (id)tasksArchivePath;	// IMP=0x0000000100017448
  - (void)obliterate;	// IMP=0x00000001000171d0
  - (void)cleanupSessionWithCompletionHandler:(CDUnknownBlockType)arg1;	// IMP=0x0000000100016fec
  - (id)setupDownloadDirectory;	// IMP=0x0000000100016d14
  - (void)clientApplicationWasReinstalled;	// IMP=0x00000001000167d4
  - (void)backgroundUpdatesEnabledForApplication:(id)arg1;	// IMP=0x0000000100016750
  - (void)applicationWasSuspended:(id)arg1;	// IMP=0x00000001000166cc
  - (_Bool)hasConnectedClient;	// IMP=0x0000000100016564
  - (void)setXPCConnection:(id)arg1;	// IMP=0x0000000100016210
  - (id)sessionForDiscretionaryStatus:(_Bool)arg1;	// IMP=0x00000001000161f8
  - (id)initWithConfiguration:(id)arg1 bundleID:(id)arg2 isSpringBoardApp:(_Bool)arg3 downloadDirectory:(id)arg4 options:(id)arg5 clientProxy:(id)arg6 delegate:(id)arg7 workQueue:(id)arg8 archiveQueue:(id)arg9;	// IMP=0x00000001000151e4
  - (id)configurationWithClientConfiguration:(id)arg1 discretionary:(_Bool)arg2;	// IMP=0x0000000100014410
  - (double)defaultWindowDurationForResourceTimeout:(double)arg1;	// IMP=0x00000001000143f8
  
  // Remaining properties
  @property(readonly, copy) NSString *debugDescription;
  @property(readonly, copy) NSString *description;
  @property(readonly) unsigned long long hash;
  @property(readonly) Class superclass;
  
  @end
  
  