@class NSURL, _SYOutputStreamer, IDSMessageContext, NSMutableDictionary, NSDictionary, SYStartSyncSession, NSObject, SYDevice, IDSService, NSMutableArray, NSMutableIndexSet, _SYInputStreamer, NSString, NSMutableSet; @protocol OS_dispatch_queue, OS_os_transaction; @interface SYFileTransferSyncEngine : SYSyncEngine { BOOL _inSession; BOOL _sessionCanceled; SYStartSyncSession *_sessionStartMessage; NSURL *_outputFileURL; _SYOutputStreamer *_outputStream; NSURL *_inputFileURL; _SYInputStreamer *_inputStream; IDSMessageContext *_inputPriorityBoostContext; NSURL *_responseFileURL; _SYOutputStreamer *_responseStream; BOOL _responsesCanceled; IDSService *_idsService; SYDevice *_activeDevice; SYDevice *_sessionDevice; SYDevice *_responseDevice; struct os_unfair_lock_s { unsigned int _os_unfair_lock_opaque; } _idsQueueLock; NSObject *_idsQueue; BOOL _idsQueueIsSuspended; BOOL _idsQueueResumedLock; NSMutableIndexSet *_messageRows; NSMutableIndexSet *_responseMessageRows; NSMutableArray *_deferredIncomingSessions; NSMutableSet *_singleMessageUUIDs; struct os_unfair_lock_s { unsigned int _os_unfair_lock_opaque; } _messageMapLock; NSMutableDictionary *_messageIDsToSessionIDs; NSObject *_closureTransaction; NSObject *_responseSessionTransaction; } @property (copy, nonatomic) NSDictionary *customIDSOptions; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; - (BOOL)resume:(id *)a0; - (void)service:(id)a0 account:(id)a1 incomingResourceAtURL:(id)a2 metadata:(id)a3 fromID:(id)a4 context:(id)a5; - (void)service:(id)a0 nearbyDevicesChanged:(id)a1; - (void)service:(id)a0 account:(id)a1 identifier:(id)a2 didSendWithSuccess:(BOOL)a3 error:(id)a4 context:(id)a5; - (void)dealloc; - (void)suspend; - (void)service:(id)a0 account:(id)a1 identifier:(id)a2 hasBeenDeliveredWithContext:(id)a3; - (void)beginSession; - (void)endSession; - (void)service:(id)a0 didSwitchActivePairedDevice:(id)a1 acknowledgementBlock:(id /* block */)a2; - (void).cxx_destruct; - (id)stateForLogging; - (void)service:(id)a0 connectedDevicesChanged:(id)a1; - (id)initWithService:(id)a0 queue:(id)a1; - (void)service:(id)a0 account:(id)a1 incomingData:(id)a2 fromID:(id)a3 context:(id)a4; - (BOOL)isInSession; - (void)_processNMSMessageData:(id)a0 context:(id)a1; - (BOOL)buffersSessions; - (void)_handleIncomingSessionFileAtURL:(id)a0 metadata:(id)a1 identifier:(id)a2 idsContext:(id)a3; - (void)_resumeIdsQueue; - (id)_wrapResponse:(id)a0 toRequest:(id)a1 ofType:(unsigned short)a2; - (void)endFileTransferForStream:(id)a0 atURL:(id)a1 target:(id)a2 wasCancelled:(BOOL)a3 messageRows:(id)a4; - (id)_assumeOwnershipOfURL:(id)a0 error:(id *)a1; - (void)_cancelResponses; - (void)_cancelSession; - (void)_consumeRemainingStreamDataWithIdentifier:(id)a0 completion:(id /* block */)a1; - (unsigned long long)_crcChecksum:(id)a0; - (void)_enqueueSingleMessage:(id)a0 withMessageID:(unsigned short)a1 priority:(long long)a2 options:(id)a3 userContext:(id)a4 callback:(id /* block */)a5; - (id)_fileTransferHeader; - (void)_handleError:(id)a0 messageID:(id)a1 streamer:(id)a2; - (void)_handleIncomingSessionFileAtOwnedURL:(id)a0 metadata:(id)a1 identifier:(id)a2 idsContext:(id)a3; - (void)_handleIncomingStreamDataWithIdentifier:(id)a0 completion:(id /* block */)a1; - (void)_handleProtobuf:(id)a0 ofType:(unsigned short)a1 identifier:(id)a2 isResponse:(BOOL)a3 withCompletion:(id /* block */)a4; - (void)_handleSessionRestart:(id)a0 priority:(long long)a1 options:(id)a2 userContext:(id)a3 callback:(id /* block */)a4; - (void)_readNextProtobuf:(id /* block */)a0; - (void)_reallyHandleSessionRestart:(id)a0 priority:(long long)a1 options:(id)a2 userContext:(id)a3 callback:(id /* block */)a4; - (void)_recordLastSeqNo:(id)a0; - (BOOL)_sessionDeviceCanUseSingleMessages; - (BOOL)_shouldTreatAsSessionEnd:(id)a0; - (void)_suspendIdsQueue; - (id)_wrapIncomingMessage:(id)a0 ofType:(unsigned short)a1 identifier:(id)a2; - (id)_wrapIncomingResponse:(id)a0 ofType:(unsigned short)a1 identifier:(id)a2; - (id)_wrapMessage:(id)a0 ofType:(unsigned short)a1 userInfo:(id)a2; - (void)beginResponseSession; - (BOOL)buffersHandshake; - (id)cancelMessagesReturningFailures:(id)a0; - (void)endResponseSession; - (void)enqueueSyncRequest:(id)a0 withMessageID:(unsigned short)a1 priority:(long long)a2 options:(id)a3 userContext:(id)a4 callback:(id /* block */)a5; - (id)idsOptions:(id)a0; - (id)idsOptions:(id)a0 forFileTransfer:(BOOL)a1; - (id)outputStreamWithMetadata:(id)a0 priority:(long long)a1 options:(id)a2 context:(id)a3 error:(id *)a4; - (BOOL)targetIsNearby; @end