@class NSMutableDictionary, NSMapTable, IDSAccount, NSDictionary, CUTDeferredTaskQueue, IDSServiceProperties, IDSAccountController, NSMutableArray, NSString, NSSet, IDSQuickSwitchAcknowledgementTracker, NSMutableSet, NSArray, IDSGroupContextController; @interface _IDSService : NSObject <IDSGroupContextControllerDelegate, IDSAccountControllerDelegate, IDSConnectionDelegatePrivate, IDSDaemonListenerProtocol> { IDSAccountController *_accountController; NSMutableDictionary *_uniqueIDToConnection; NSSet *_commands; NSMapTable *_delegateToInfo; id _delegateContext; NSMutableDictionary *_protobufSelectors; NSMutableSet *_lastIsActiveSet; NSMutableArray *_linkedDevices; NSMutableDictionary *_subServices; BOOL _linkedDevicesLoaded; BOOL _pretendingToBeFull; BOOL _everHadDelegate; BOOL _clientIsSandboxed; unsigned int _listenerCaps; NSMutableDictionary *_uniqueIDToProgress; IDSQuickSwitchAcknowledgementTracker *_acknowledgementTracker; IDSServiceProperties *_serviceProperties; id /* block */ _pendingRegisteredIdentitiesBlock; } @property (nonatomic) BOOL wantsPseudonymUpdates; @property (retain, nonatomic) NSDictionary *cachedPseudonymURIMap; @property (retain, nonatomic) CUTDeferredTaskQueue *pseudonymUpdateTaskQueue; @property (readonly, retain, nonatomic) IDSGroupContextController *groupContextController; @property (retain, nonatomic) NSMutableDictionary *completionBlocksByRequestID; @property (readonly, copy, nonatomic) NSSet *accounts; @property (readonly, copy, nonatomic) NSSet *internalAccounts; @property (readonly, nonatomic) IDSAccount *iCloudAccount; @property (readonly, copy, nonatomic) NSArray *devices; @property (readonly, copy, nonatomic) IDSServiceProperties *serviceProperties; @property (readonly, nonatomic) BOOL canSend; @property (readonly, copy, nonatomic) NSString *serviceDomain; @property (nonatomic, getter=isPretendingToBeFull) BOOL pretendingToBeFull; @property (nonatomic) BOOL manuallyAckMessages; @property (readonly, nonatomic) long long maxEffectivePayloadSize; @property (readonly, nonatomic) NSArray *URIs; @property (readonly, nonatomic) NSDictionary *pseudonymURIMap; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; + (void)serviceWithIdentifier:(id)a0 commands:(id)a1 manuallyAckMessages:(BOOL)a2 delegateContext:(id)a3 completion:(id /* block */)a4; + (id)deviceForFromID:(id)a0 fromDevices:(id)a1; - (BOOL)updateSubServices:(id)a0 forDevice:(id)a1; - (void)groupContextController:(id)a0 didCreateGroup:(id)a1; - (void)addDelegate:(id)a0 queue:(id)a1; - (void)revokePseudonym:(id)a0 requestProperties:(id)a1 completion:(id /* block */)a2; - (id)_payloadFromDecryptedData:(id)a0; - (void)setProtobufAction:(SEL)a0 forProtobufType:(unsigned short)a1 isResponse:(BOOL)a2; - (void)connection:(id)a0 messageIdentifier:(id)a1 alternateCallbackID:(id)a2 updatedWithResponseCode:(long long)a3 error:(id)a4 lastCall:(BOOL)a5 messageContext:(id)a6; - (void)_callDelegatesWithBlock:(id /* block */)a0; - (BOOL)sendInvitationUpdate:(id)a0 fromAccount:(id)a1 toDestination:(id)a2 options:(id)a3 identifier:(id *)a4 error:(id *)a5; - (BOOL)sendProtobuf:(id)a0 fromAccount:(id)a1 toDestinations:(id)a2 priority:(long long)a3 options:(id)a4 identifier:(id *)a5 error:(id *)a6; - (long long)_messageTypeForCommand:(id)a0; - (BOOL)sendCertifiedDeliveryReceipt:(id)a0; - (void)finishedReportingRequestUUID:(id)a0 withError:(id)a1; - (void)dealloc; - (void)finishedSigningForRequest:(id)a0 signedData:(id)a1 error:(id)a2; - (BOOL)sendAheadGroup:(id)a0 priority:(long long)a1 options:(id)a2 identifier:(id *)a3 completion:(id /* block */)a4; - (void)accountController:(id)a0 accountAdded:(id)a1; - (id)_accountWithURI:(id)a0 orPseudonym:(id)a1; - (id)_sendingAccountForAccount:(id)a0; - (id)_init; - (id)datagramConnectionForSessionDestination:(id)a0 error:(id *)a1; - (void)connection:(id)a0 nearbyDevicesChanged:(id)a1; - (void)setPreferInfraWiFi:(BOOL)a0; - (void)daemonDisconnected; - (void)removeDelegate:(id)a0; - (void)_sendMissingMessageMetric:(id)a0; - (id)_activeDeviceForUniqueID:(id)a0; - (id)datagramChannelForSocketDescriptor:(int)a0 error:(id *)a1; - (BOOL)cancelMessageWithOptions:(id)a0 identifier:(id *)a1 error:(id *)a2; - (id)_initWithDelegateContext:(id)a0; - (void)reportAction:(long long)a0 ofTempURI:(id)a1 fromURI:(id)a2 withCompletion:(id /* block */)a3; - (id)uriForFromID:(id)a0; - (BOOL)reportSpamMessage:(id)a0; - (void)connection:(id)a0 incomingEngramMessage:(id)a1 fromURI:(id)a2 context:(id)a3; - (void)_tearDownConnectionForUniqueID:(id)a0; - (void)_callDelegatesWithBlock:(id /* block */)a0 group:(id)a1; - (id)pseudonymsForMaskedURI:(id)a0 matchingProperties:(id)a1; - (void)connection:(id)a0 incomingInvitationUpdate:(id)a1 fromURI:(id)a2 context:(id)a3; - (void)connection:(id)a0 incomingPendingMessageFromURI:(id)a1 context:(id)a2; - (void)accountController:(id)a0 accountRemoved:(id)a1; - (id)linkedDeviceForFromID:(id)a0 withRelationship:(long long)a1; - (BOOL)sendInvitation:(id)a0 fromAccount:(id)a1 toDestination:(id)a2 options:(id)a3 identifier:(id *)a4 error:(id *)a5; - (void)_callDelegatesForDevicesChanged; - (void)didSwitchActivePairedDevice:(id)a0 forService:(id)a1 wasHandled:(BOOL *)a2; - (id)pseudonymForPseudonymURI:(id)a0; - (void)connection:(id)a0 incomingGroupData:(id)a1 fromURI:(id)a2 context:(id)a3; - (id /* block */)_acknowledgementBlockWithDelegateIdentifier:(id)a0; - (id)daemonListener; - (void)connection:(id)a0 connectedDevicesChanged:(id)a1; - (BOOL)cancelOpportunisticDataWithIdentifier:(id)a0 error:(id *)a1; - (void)resendSubServicesToDaemonForCurrentDevice; - (void)connection:(id)a0 incomingMessage:(id)a1 fromURI:(id)a2 context:(id)a3; - (void)connection:(id)a0 didFlushCacheForKTPeerURI:(id)a1; - (id)devicesForBTUUID:(id)a0; - (void)finishedVerifyingSignedDataForRequest:(id)a0 success:(BOOL)a1 error:(id)a2; - (void)connection:(id)a0 didHintCheckingTransportLogWithReason:(long long)a1; - (void)_logConnectionMap; - (void)signData:(id)a0 withAlgorithm:(long long)a1 options:(id)a2 completion:(id /* block */)a3; - (void)sendAckForMessageWithContext:(id)a0; - (id)datagramConnectionForSessionDestination:(id)a0 uid:(unsigned int)a1 error:(id *)a2; - (void)connection:(id)a0 incomingOpportunisticData:(id)a1 withIdentifier:(id)a2 fromURI:(id)a3 context:(id)a4; - (void)connection:(id)a0 account:(id)a1 receivedGroupSessionParticipantUpdate:(id)a2 context:(id)a3; - (void)_processAccountSet:(id)a0; - (id)pseudonymsForMaskedURI:(id)a0; - (void)connection:(id)a0 didSendOpportunisticDataWithIdentifier:(id)a1 toIDs:(id)a2; - (BOOL)getProgressUpdateForIdentifier:(id)a0 error:(id *)a1; - (id)_filteredAccountsFrom:(id)a0; - (void)_disableAccount:(id)a0; - (void)connection:(id)a0 incomingProtobuf:(id)a1 fromURI:(id)a2 context:(id)a3; - (void)service:(id)a0 linkedDevicesUpdated:(id)a1; - (id)pseudonymPropertiesWithFeatureID:(id)a0 scopeID:(id)a1 expiryDurationInSeconds:(double)a2; - (void)connection:(id)a0 incomingPendingResourceWithMetadata:(id)a1 guid:(id)a2 fromURI:(id)a3 context:(id)a4; - (id)firstRoutableInternetDestinationForSelf; - (BOOL)cancelMessageWithOptions:(id)a0 destination:(id)a1 identifier:(id *)a2 error:(id *)a3; - (id)datagramConnectionForSocketDescriptor:(int)a0 error:(id *)a1; - (void)finishedRenewingPseudonym:(id)a0 success:(BOOL)a1 error:(id)a2 requestUUID:(id)a3; - (void)performGroupTask:(id /* block */)a0; - (void)service:(id)a0 tinkerDeviceAdded:(id)a1; - (BOOL)sendServerMessage:(id)a0 command:(id)a1 fromAccount:(id)a2; - (void)connection:(id)a0 incomingData:(id)a1 fromURI:(id)a2 context:(id)a3; - (void)accountController:(id)a0 accountDisabled:(id)a1; - (SEL)protobufActionForType:(unsigned short)a0 isResponse:(BOOL)a1; - (id)datagramChannelForSessionDestination:(id)a0 options:(id)a1 error:(id *)a2; - (void)connection:(id)a0 identifier:(id)a1 alternateCallbackID:(id)a2 willSendToDestinations:(id)a3 skippedDestinations:(id)a4 registrationPropertyToDestinations:(id)a5; - (void)connection:(id)a0 incomingInvitation:(id)a1 fromURI:(id)a2 context:(id)a3; - (void)finishedRevokingPseudonymWithSuccess:(BOOL)a0 error:(id)a1 requestUUID:(id)a2; - (void)account:(id)a0 pseudonymsChanged:(id)a1; - (void)connection:(id)a0 incomingAccessoryData:(id)a1 fromURI:(id)a2 context:(id)a3; - (void)_updateLinkedDevicesWithDevicesInfo:(id)a0; - (id)_preferredURIForAccount:(id)a0; - (BOOL)setWakingPushPriority:(long long)a0 error:(id *)a1; - (id)groupContextController:(id)a0 accountsForAlises:(id)a1; - (void)connection:(id)a0 isActiveChanged:(BOOL)a1; - (void).cxx_destruct; - (void)connection:(id)a0 incomingAccessoryReportMessage:(id)a1 accessoryID:(id)a2 controllerID:(id)a3 context:(id)a4; - (id)initWithService:(id)a0 commands:(id)a1 manuallyAckMessages:(BOOL)a2 delegateContext:(id)a3; - (void)connection:(id)a0 didCancelMessageWithSuccess:(BOOL)a1 error:(id)a2 identifier:(id)a3; - (id)linkedDevicesWithRelationship:(long long)a0; - (void)scheduleTransactionLogTask:(id)a0; - (id)streamConnectionForSessionDestination:(id)a0 error:(id *)a1; - (void)connection:(id)a0 identifier:(id)a1 fromURI:(id)a2 hasBeenDeliveredWithContext:(id)a3; - (id)streamConnectionForSocketDescriptor:(int)a0 error:(id *)a1; - (void)OTRTestCallback:(id)a0 time:(double)a1 error:(id)a2; - (void)_calloutPseudonymsDidUpdate; - (void)testCloudQRConnection; - (void)_enforceSandboxPolicy; - (BOOL)_canAccount:(id)a0 sendWithFromID:(id)a1; - (void)service:(id)a0 tinkerDeviceUpdated:(id)a1; - (void)daemonConnected; - (BOOL)sendData:(id)a0 priority:(long long)a1 options:(id)a2 identifier:(id *)a3 error:(id *)a4; - (id)deviceForUniqueID:(id)a0; - (id)deviceForFromID:(id)a0; - (void)provisionPseudonymForURI:(id)a0 withProperties:(id)a1 requestProperties:(id)a2 completion:(id /* block */)a3; - (BOOL)_isDroppingMessages; - (void)finishedProvisioningPseudonym:(id)a0 success:(BOOL)a1 error:(id)a2 forRequestUUID:(id)a3; - (void)provisionPseudonymWithProperties:(id)a0 requestProperties:(id)a1 completion:(id /* block */)a2; - (BOOL)sendResourceAtURL:(id)a0 metadata:(id)a1 fromAccount:(id)a2 toDestinations:(id)a3 priority:(long long)a4 options:(id)a5 identifier:(id *)a6 error:(id *)a7; - (void)verifySignedData:(id)a0 matchesExpectedData:(id)a1 withTokenURI:(id)a2 forAlgorithm:(long long)a3 options:(id)a4 completion:(id /* block */)a5; - (void)connection:(id)a0 didFlushCacheForRemoteURI:(id)a1 fromURI:(id)a2 guid:(id)a3; - (void)_loadCachedLinkedDevices; - (void)_handlePretendingToBeFullWithIdentifier:(id *)a0; - (void)_setupNewConnectionForAccount:(id)a0; - (void)_callIsActiveChanged; - (void)connection:(id)a0 devicesChanged:(id)a1; - (BOOL)canSendMessageWithAccount:(id)a0 toDestination:(id)a1; - (id)daemonController; - (void)service:(id)a0 tinkerDeviceRemoved:(id)a1; - (void)connection:(id)a0 identifier:(id)a1 didSendWithSuccess:(BOOL)a2 error:(id)a3 context:(id)a4; - (void)accountController:(id)a0 accountEnabled:(id)a1; - (void)connection:(id)a0 account:(id)a1 receivedGroupSessionParticipantDataUpdate:(id)a2; - (void)startOTRTest:(long long)a0; - (void)_callDelegatesRespondingToSelector:(SEL)a0 withPreCallbacksBlock:(id /* block */)a1 callbackBlock:(id /* block */)a2 postCallbacksBlock:(id /* block */)a3; - (id)_sendingAccountForAccount:(id)a0 destination:(id)a1 fromID:(id)a2; - (void)connection:(id)a0 incomingTopLevelMessage:(id)a1 fromURI:(id)a2 messageContext:(id)a3; - (void)renewPseudonym:(id)a0 forUpdatedExpiryEpoch:(double)a1 requestProperties:(id)a2 completion:(id /* block */)a3; - (void)_reloadCachedLinkedDevices; - (BOOL)sendMessage:(id)a0 fromAccount:(id)a1 toDestinations:(id)a2 priority:(long long)a3 options:(id)a4 identifier:(id *)a5 error:(id *)a6; - (void)_callLinkedDevicesChanged; - (BOOL)sendOpportunisticData:(id)a0 options:(id)a1 identifier:(id)a2 error:(id *)a3; - (void)setLinkPreferences:(id)a0; - (BOOL)cancelIdentifier:(id)a0 error:(id *)a1; - (BOOL)sendAccessoryData:(id)a0 toAccessoryID:(id)a1 accessToken:(id)a2 options:(id)a3 identifier:(id *)a4 error:(id *)a5; - (void)_stopAwaitingQuickSwitchAcknowledgementFromDelegateWithIdentifier:(id)a0; - (void)_callDelegatesRespondingToSelector:(SEL)a0 withPreCallbacksBlock:(id /* block */)a1 callbackBlock:(id /* block */)a2 postCallbacksBlock:(id /* block */)a3 group:(id)a4; - (void)connection:(id)a0 didUpdateDeviceIdentity:(id)a1 error:(id)a2 context:(id)a3; - (void)_enableAccount:(id)a0; - (BOOL)sendData:(id)a0 fromAccount:(id)a1 toDestinations:(id)a2 priority:(long long)a3 options:(id)a4 identifier:(id *)a5 error:(id *)a6; - (void)connection:(id)a0 account:(id)a1 sessionInviteReceived:(id)a2 fromID:(id)a3 transportType:(id)a4 options:(id)a5 context:(id)a6 messageContext:(id)a7; @end