SyncServices.framework

@interface ISyncChange : NSObject

// Class Members
+ (id)changeWithType:(ISyncChangeType)type recordIdentifier:(NSString*)recordIdentifier changes:(NSArray)/* NSDictionary*/*:(changes;)

// Instance Members
- (ISyncChangeType)type;
- (NSArray)/*:(NSDictionary*/*)changes;
- (NSDictionary*)record;
- (NSString*)recordIdentifier;
- (id)initWithChangeType:(ISyncChangeType)type recordIdentifier:(NSString*)recordIdentifier changes:(NSArray)/* NSDictionary*/*:(changes;)

@interface ISyncClient : NSObject

// Instance Members
- (BOOL)canPullChangesForEntityName:(NSString*)entityName;
- (BOOL)canPushChangesForEntityName:(NSString*)entityName;
- (BOOL)isEnabledForEntityName:(NSString*)entityName;
- (BOOL)shouldReplaceClientRecordsForEntityName:(NSString*)entityName;
- (BOOL)shouldSynchronizeWithClientsOfType:(NSString*)clientType;
- (ISyncStatus)lastSyncStatusForEntityName:(NSString*)entityName;
- (NSArray)/*:(NSString*/*)enabledEntityNames;
- (NSArray)/*:(NSString*/*)supportedEntityNames;
- (NSArray)/*:(id)*/* filters;
- (NSDate*)lastSyncDateForEntityName:(NSString*)entityName;
- (NSString*)clientIdentifier;
- (NSString*)clientType;
- (NSString*)displayName;
- (NSString*)imagePath;
- (NSString*)syncAlertToolPath;
- (id)objectForKey:(NSString*)key;
- (void)setDisplayName:(NSString*)displayName;
- (void)setEnabled:(BOOL)flag forEntityNames:(NSArray)/* NSString*/*:(entityNames;)
- (void)setFilters:(NSArray)/* id:(*/*)filters;
- (void)setImagePath:(NSString*)path;
- (void)setObject:(id)value forKey:(NSString*)key;
- (void)setShouldReplaceClientRecords:(BOOL)flag forEntityNames:(NSArray)/* NSString*/*:(entityNames;)
- (void)setShouldSynchronize:(BOOL)flag withClientsOfType:(NSString*)clientType;
- (void)setSyncAlertHandler:(id)handler selector:(SEL)selector;
- (void)setSyncAlertToolPath:(NSString*)path;

@interface NSPersistentStoreCoordinator (CoreDataSync)

// Instance Members
- (BOOL)syncWithClient:(ISyncClient*)client inBackground:(BOOL)flag handler:(id) syncHandler:(error:)NSError** rError;
- (void)setStoresFastSyncDetailsAtURL:(NSURL*)url forPersistentStore:(NSPersistentStore*)store;

@interface ISyncFilter : NSObject

// Class Members
+ (id):(filterMatchingAllFilters:)NSArray /*:(id)*/* filters;
+ (id):(filterMatchingAtLeastOneFilter:)NSArray /*:(id)*/* filters;

@interface ISyncManager : NSObject

// Class Members
+ (ISyncManager*)sharedManager;

// Instance Members
- (BOOL)isEnabled;
- (BOOL)registerSchemaWithBundlePath:(NSString*)bundlePath;
- (ISyncClient*)clientWithIdentifier:(NSString*)clientId;
- (ISyncClient*)registerClientWithIdentifier:(NSString*)clientId descriptionFilePath:(NSString*)descriptionFilePath;
- (ISyncRecordSnapshot*)snapshotOfRecordsInTruthWithEntityNames:(NSArray)/* NSString*/*:(entityNames)usingIdentifiersForClient: ISyncClient*:(client;)
- (NSArray*)requestModes;
- (void)addRequestMode:(NSString*)mode;
- (void)removeRequestMode:(NSString*)mode;
- (void)unregisterClient:(ISyncClient*)client;
- (void)unregisterSchemaWithName:(NSString*)schemaName;

@interface ISyncRecordReference : NSObject

@interface ISyncRecordSnapshot : NSObject

// Instance Members
- (NSArray*)sourceIdentifiersForRelationshipName:(NSString*)relationshipName withTargetIdentifier:(NSString*)sourceId;
- (NSArray*)targetIdentifiersForRelationshipName:(NSString*)relationshipName withSourceIdentifier:(NSString*)sourceId;
- (NSDictionary*)recordsWithIdentifiers:(NSArray)/* NSString*/*:(recordIds;)
- (NSDictionary*)recordsWithMatchingAttributes:(NSDictionary*)attributes;

@interface ISyncRecordSnapshot (ISyncRecordReference)

// Instance Members
- (ISyncRecordReference*)recordReferenceForRecordWithIdentifier:(NSString*)identifier;
- (NSString*)recordIdentifierForReference:(ISyncRecordReference*)reference isModified:(BOOL*)pModified;

@interface ISyncSession : NSObject

// Class Members
+ (ISyncSession*)beginSessionWithClient:(ISyncClient*)client entityNames:(NSArray)/* entity:(name*/*)entityNames beforeDate:(NSDate*)date;
+ (ISyncSession*)beginSessionWithClient:(ISyncClient*)client entityNames:(NSArray)/* entity:(name*/*)entityNames beforeDate:(NSDate*)date lastAnchors:(NSDictionary)/* string:(entity)name ->:(string)anchor*/* anchors:(AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER;)
+ (void)beginSessionInBackgroundWithClient:(ISyncClient*)client entityNames:(NSArray)/* entity:(name*/*)entityNames target:(id)target selector:(SEL)selector;
+ (void)beginSessionInBackgroundWithClient:(ISyncClient*)client entityNames:(NSArray)/* entity:(name*/*)entityNames target:(id)target selector:(SEL)selector lastAnchors:(NSDictionary)/* string:(entity)name ->:(string)anchor*/* anchors:(AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER;)
+ (void)cancelPreviousBeginSessionWithClient:(ISyncClient*)client;

// Instance Members
- (BOOL)isCancelled;
- (BOOL)prepareToPullChangesForEntityNames:(NSArray)/* NSString*/*:(entityNames)beforeDate: NSDate*:(date;)
- (BOOL)shouldPullChangesForEntityName:(NSString*)entityName;
- (BOOL)shouldPushAllRecordsForEntityName:(NSString*)entityName;
- (BOOL)shouldPushChangesForEntityName:(NSString*)entityName;
- (BOOL)shouldReplaceAllRecordsOnClientForEntityName:(NSString*)entityName;
- (ISyncRecordSnapshot*)snapshotOfRecordsInTruth;
- (NSEnumerator)/*:(ISyncChange*/*)changeEnumeratorForEntityNames: NSArray:(/*)NSString*/* entityNames;
- (id)clientInfoForRecordWithIdentifier:(NSString*)recordId;
- (void)cancelSyncing;
- (void)clientAcceptedChangesForRecordWithIdentifier:(NSString*)recordId formattedRecord:(NSDictionary*)formattedRecord newRecordIdentifier:(NSString*)recordId;
- (void)clientChangedRecordIdentifiers:(NSDictionary*)oldToNew;
- (void)clientCommittedAcceptedChanges;
- (void)clientCommittedAcceptedChangesWithNextAnchors:(NSDictionary)/* string:(entity)name ->:(string)anchor*/* anchors:(AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER;)
- (void)clientDidResetEntityNames:(NSArray)/* NSString*/*:(entityNames;)
- (void)clientFinishedPushingChangesWithNextAnchors:(NSDictionary)/* string:(entity) name:(->)string anchor*/*:(anchors)AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER;
- (void)clientLostRecordWithIdentifier:(NSString*)recordId shouldReplaceOnNextSync:(BOOL)flag;
- (void)clientRefusedChangesForRecordWithIdentifier:(NSString*)recordId;
- (void)clientWantsToPushAllRecordsForEntityNames:(NSArray)/* NSString*/*:(entityNames;)
- (void)deleteRecordWithIdentifier:(NSString*)recordId;
- (void)finishSyncing;
- (void)prepareToPullChangesInBackgroundForEntityNames:(NSArray)/* NSString*/*:(entityNames)target: id:(target)selector: SEL:(selector;)
- (void)pushChange:(ISyncChange*)change;
- (void)pushChangesFromRecord:(NSDictionary*)record withIdentifier:(NSString*)recordId;
- (void)setClientInfo:(id) clientInfo:(forRecordWithIdentifier:)NSString* recordId;

@interface ISyncSessionDriver : NSObject

// Class Members
+ (ISyncSessionDriver*)sessionDriverWithDataSource:(id) dataSource;

// Instance Members
- (BOOL)handlesSyncAlerts;
- (BOOL)startAsynchronousSync:(NSError**)outError;
- (BOOL)sync;
- (ISyncClient*)client;
- (ISyncSession*)session;
- (NSError*)lastError;
- (id)/*implements:(ISyncSessionDriverDelegate)Informal Protocol*/:(delegate;)
- (id):(dataSource;)
- (void)finishSyncing;
- (void)setDelegate:(id)/*implements ISyncSessionDriverDelegate:(Informal)Protocol*/ delegate;
- (void)setHandlesSyncAlerts:(BOOL)yesOrNo;

@interface NSObject (ISyncSessionDriverDataSourceOptionalMethods)

// Instance Members
- (NSArray*)/*:(NSString*/)entityNamesToPull;
- (NSArray*)/*:(NSString*/)entityNamesToSync;
- (NSArray*)changesForEntityName:(NSString*)entity moreComing:(BOOL*)moreComing error:(NSError**)outError;
- (NSArray*)identifiersForRecordsToDeleteForEntityName:(NSString*)entityName moreComing:(BOOL*)moreComing error:(NSError**)outError;
- (NSDictionary*)changedRecordsForEntityName:(NSString*)entity moreComing:(BOOL*)moreComing error:(NSError**)outError;
- (NSString*)lastAnchorForEntityName:(NSString*)entityName;
- (NSString*)nextAnchorForEntityName:(NSString*)entityName;
- (NSTimeInterval)sessionBeginTimeout;
- (NSTimeInterval)sessionPullChangesTimeout;

@interface NSObject (ISyncSessionDriverDelegate)

// Instance Members
- (BOOL)sessionDriver:(ISyncSessionDriver*)sender didRegisterClientAndReturnError:(NSError**)outError;
- (BOOL)sessionDriver:(ISyncSessionDriver*)sender willPushAndReturnError:(NSError**)outError;
- (BOOL)sessionDriver:(ISyncSessionDriver*)sender didPushAndReturnError:(NSError**)outError;
- (BOOL)sessionDriver:(ISyncSessionDriver*)sender willPullAndReturnError:(NSError**)outError;
- (BOOL)sessionDriver:(ISyncSessionDriver*)sender willFinishSessionAndReturnError:(NSError**)outError;
- (BOOL)sessionDriver:(ISyncSessionDriver*)sender didPullAndReturnError:(NSError**)outError;
- (void)sessionDriverDidCancelSession:(ISyncSessionDriver*)sender;
- (void)sessionDriverDidFinishSession:(ISyncSessionDriver*)sender;
- (void)sessionDriverWillCancelSession:(ISyncSessionDriver*)sender;

@interface NSObject (SyncUIHelperInformalProtocol)

// Instance Members
- (NSAttributedString*)attributedStringForIdentityPropertiesWithNames:(NSArray*)propertyNames inRecord:(NSDictionary*)record comparisonRecords:(NSArray*)comparisonRecords firstLineAttributes:(NSDictionary*)firstLineAttributes secondLineAttributes:(NSDictionary*)secondLineAttributes;
- (NSAttributedString*)attributedStringForPropertiesWithNames:(NSArray*)propertyNames inRecord:(NSDictionary*)record comparisonRecords:(NSArray*)comparisonRecords defaultAttributes:(NSDictionary*)defaultAttributes;