import type { _NSDictionary } from "../Foundation/NSDictionary.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _NSManagedObject } from "./NSManagedObject.js";
export declare class _NSMergeConflict extends _NSObject {
    static alloc(): _NSMergeConflict;
    static new(): _NSMergeConflict;
    init(): _NSMergeConflict;
    /**
     * There are two situations in which a conflict may occur: 1. Between the NSManagedObjectContext and its in-memory cached state at the NSPersistentStoreCoordinator layer. In this case, the merge conflict has a source object and a cached snapshot but no persisted snapshot (persnap is nil). 2. Between the cached state at the NSPersistentStoreCoordinator and the external store (file, database, etc.). In this case, the merge conflict has a cached snapshot and a persisted snapshot. The source object is also provided as a convenience, but it is not directly involved in the conflict. Snapshot dictionaries include values for all attributes and to-one relationships, but not to-many relationships. Relationship values are NSManagedObjectID references. to-many relationships must be pulled from the persistent store as needed. A newVersion number of 0 means the object was deleted and the corresponding snapshot is nil.
     */
    initWithSource$newVersion$oldVersion$cachedSnapshot$persistedSnapshot$(srcObject: _NSManagedObject, newvers: number, oldvers: number, cachesnap: _NSDictionary | null, persnap: _NSDictionary | null): _NSMergeConflict;
    sourceObject(): _NSManagedObject;
    objectSnapshot(): _NSDictionary | null;
    cachedSnapshot(): _NSDictionary | null;
    persistedSnapshot(): _NSDictionary | null;
    newVersionNumber(): number;
    oldVersionNumber(): number;
}
