import type { _NSArray } from "../Foundation/NSArray.js";
import type { _NSIndexSet } from "../Foundation/NSIndexSet.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _PHFetchResult } from "./PHFetchResult.js";
export declare class _PHFetchResultChangeDetails extends _NSObject {
    static alloc(): _PHFetchResultChangeDetails;
    static new(): _PHFetchResultChangeDetails;
    init(): _PHFetchResultChangeDetails;
    /** Provides a "diff" between 2 PHFetchResult objects. */
    static changeDetailsFromFetchResult$toFetchResult$changedObjects$(fromResult: _PHFetchResult, toResult: _PHFetchResult, changedObjects: _NSArray): _PHFetchResultChangeDetails;
    /**
     * Enumerates the indexes of the moved items, relative to the 'before' state of the fetch result after applying the removedIndexes and insertedIndexes
     */
    enumerateMovesWithBlock$(handler: (fromIndex: number, toIndex: number) => void): void;
    /**
     * fetch result with the state of the fetched objects before this change (returns the fetch result passed in to changeDetailsForFetchResult:)
     */
    fetchResultBeforeChanges(): _PHFetchResult;
    /** fetch result with the state of the fetched objects after this change */
    fetchResultAfterChanges(): _PHFetchResult;
    /**
     * YES if the changes to this fetch result are described by the removed/inserted/changed details. NO indicates that the scope of changes were too large and UI clients should do a full reload, incremental changes could not be provided
     */
    hasIncrementalChanges(): boolean;
    /**
     * The indexes of the removed items, relative to the 'before' state of the fetch result returns nil if hasIncrementalChanges is NO
     */
    removedIndexes(): _NSIndexSet | null;
    removedObjects(): _NSArray;
    /**
     * The indexes of the inserted items, relative to the 'before' state of the fetch result after applying the removedIndexes returns nil if hasIncrementalChanges is NO
     */
    insertedIndexes(): _NSIndexSet | null;
    insertedObjects(): _NSArray;
    /**
     * The indexes of the updated items, relative to the 'after' state of the fetch result returns nil if hasIncrementalChanges is NO
     */
    changedIndexes(): _NSIndexSet | null;
    changedObjects(): _NSArray;
    /** YES if there are moved items returns NO if hasIncrementalChanges is NO */
    hasMoves(): boolean;
}
