import type { _NSArray } from "./NSArray.js";
import type { _NSFastEnumeration } from "./NSFastEnumeration.js";
import type { _NSIndexSet } from "./NSIndexSet.js";
import type { _NSObject } from "./NSObject.js";
import type { _NSOrderedCollectionChange } from "./NSOrderedCollectionChange.js";
export declare class _NSOrderedCollectionDifference extends _NSObject {
    static alloc(): _NSOrderedCollectionDifference;
    static new(): _NSOrderedCollectionDifference;
    init(): _NSOrderedCollectionDifference;
    /**
     * Creates a new difference representing the changes in the parameter. For clients interested in the difference between two collections, the collection's differenceFrom method should be used instead. To guarantee that instances are unambiguous and safe for compatible base states, this method requires that its parameter conform to the following requirements: 1) All insertion offsets are unique 2) All removal offsets are unique 3) All associated indexes match a change with the opposite parity.
     */
    initWithChanges$(changes: _NSArray): _NSOrderedCollectionDifference;
    initWithInsertIndexes$insertedObjects$removeIndexes$removedObjects$additionalChanges$(inserts: _NSIndexSet, insertedObjects: _NSArray | null, removes: _NSIndexSet, removedObjects: _NSArray | null, changes: _NSArray): _NSOrderedCollectionDifference;
    initWithInsertIndexes$insertedObjects$removeIndexes$removedObjects$(inserts: _NSIndexSet, insertedObjects: _NSArray | null, removes: _NSIndexSet, removedObjects: _NSArray | null): _NSOrderedCollectionDifference;
    /** Create a new difference by mapping over this difference's members */
    differenceByTransformingChangesWithBlock$(block: (arg0: _NSOrderedCollectionChange) => _NSOrderedCollectionChange): _NSOrderedCollectionDifference;
    /**
     * Returns a difference that is the inverse of the receiver. In other words, given a valid difference `diff` the array `a` is equal to [[a arrayByApplyingDifference:diff] arrayByApplyingDifference:diff.inverseDifference] To revert a chronological sequence of diffs, apply their inverses in reverse order.
     */
    inverseDifference(): _NSOrderedCollectionDifference;
    insertions(): _NSArray;
    removals(): _NSArray;
    hasChanges(): boolean;
}
export interface _NSOrderedCollectionDifference extends _NSFastEnumeration {
}
