import type { NobjcObject } from "objc-js";
import type { _NSAtomicStoreCacheNode } from "./NSAtomicStoreCacheNode.js";
import type { _NSEntityDescription } from "./NSEntityDescription.js";
import type { _NSManagedObject } from "./NSManagedObject.js";
import type { _NSManagedObjectID } from "./NSManagedObjectID.js";
import type { _NSPersistentStore } from "./NSPersistentStore.js";
import type { _NSPersistentStoreCoordinator } from "./NSPersistentStoreCoordinator.js";
import type { _NSDictionary } from "../Foundation/NSDictionary.js";
import type { _NSSet } from "../Foundation/NSSet.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { _NSURL } from "../Foundation/NSURL.js";
export declare class _NSAtomicStore extends _NSPersistentStore {
    static alloc(): _NSAtomicStore;
    static new(): _NSAtomicStore;
    init(): _NSAtomicStore;
    /** API method that may be overriden by subclasses for custom initialization */
    initWithPersistentStoreCoordinator$configurationName$URL$options$(coordinator: _NSPersistentStoreCoordinator | null, configurationName: _NSString | null, url: _NSURL, options: _NSDictionary | null): _NSAtomicStore;
    /** API method that must be overriden by subclasses */
    load$(error: NobjcObject | null): boolean;
    /** API method that must be overriden by subclasses */
    save$(error: NobjcObject | null): boolean;
    /** API method that must be overriden by subclasses */
    newCacheNodeForManagedObject$(managedObject: _NSManagedObject): _NSAtomicStoreCacheNode;
    /** API method that must be overriden by subclasses */
    updateCacheNode$fromManagedObject$(node: _NSAtomicStoreCacheNode, managedObject: _NSManagedObject): void;
    /** Utility method with implementation provided by NSAtomicStore */
    cacheNodes(): _NSSet;
    /** Utility method with implementation provided by NSAtomicStore */
    addCacheNodes$(cacheNodes: _NSSet): void;
    /** Called before cache nodes are removed */
    willRemoveCacheNodes$(cacheNodes: _NSSet): void;
    /** Utility method with implementation provided by NSAtomicStore */
    cacheNodeForObjectID$(objectID: _NSManagedObjectID): _NSAtomicStoreCacheNode | null;
    /** Utility method with implementation provided by NSAtomicStore */
    objectIDForEntity$referenceObject$(entity: _NSEntityDescription, data: NobjcObject): _NSManagedObjectID;
    /** API method that must be overriden by subclasses */
    newReferenceObjectForManagedObject$(managedObject: _NSManagedObject): NobjcObject;
    /** Utility method with implementation provided by NSAtomicStore */
    referenceObjectForObjectID$(objectID: _NSManagedObjectID): NobjcObject;
}
