      - Parameter photoLibrary: A reference to the PhotoLibrary.
      - Parameter fetchBeforeChanges: A PHFetchResult<PHObject> before changes.
      - Parameter fetchAfterChanges: A PHFetchResult<PHObject> after changes.
-     */
-    @objc
-    optional func photoLibrary(photoLibrary: PhotoLibrary, fetchBeforeChanges: PHFetchResult<PHObject>, fetchAfterChanges: PHFetchResult<PHObject>)
+     - Parameter hasIncrementalChanges: A boolean indicating whether incremental
+     changes exist. True if yes, false otherwise.
+     */
+    @objc
+    optional func photoLibrary(photoLibrary: PhotoLibrary, fetchBeforeChanges: PHFetchResult<PHObject>, fetchAfterChanges: PHFetchResult<PHObject>, hasIncrementalChanges: Bool)
     
     /**
      A delegation method that is executed when there are moved objects.

     - Parameter completion: An optional completion block.
     */
    public func fetch(type: PHAssetCollectionType, subtype: PHAssetCollectionSubtype, completion: ([PhotoLibraryDataSource]) -> Void) {
        DispatchQueue.global(qos: .default).async { [weak self, type = type, subtype = subtype, completion = completion] in
            guard let s = self else {
                return

import Photos

public struct PhotoLibraryDataSource {
    public private(set) var fetchResult: PHFetchResult<PHAsset>
    public private(set) var collection: PHAssetCollection
    public private(set) var assets: [PHAsset]
}
