import type { NobjcObject } from "objc-js";
import type { _NSDocument } from "./NSDocument.js";
import type { _NSDictionary } from "../Foundation/NSDictionary.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { _NSURL } from "../Foundation/NSURL.js";
import type { _NSManagedObjectContext } from "../CoreData/NSManagedObjectContext.js";
import type { _NSManagedObjectModel } from "../CoreData/NSManagedObjectModel.js";
import type { NSSaveOperationType } from "./NSSaveOperationType.js";
export declare class _NSPersistentDocument extends _NSDocument {
    static alloc(): _NSPersistentDocument;
    static new(): _NSPersistentDocument;
    init(): _NSPersistentDocument;
    /**
     * Configures the persistent store coordinator with the appropriate stores. Subclasses can create the store to save to or load from (invoked from within the other NSDocument methods to read/write files), which gives developers the ability to load/save from/to different persistent store types (default type is XML).
     */
    configurePersistentStoreCoordinatorForURL$ofType$modelConfiguration$storeOptions$error$(url: _NSURL, fileType: _NSString, configuration: _NSString | null, storeOptions: _NSDictionary | null, error: NobjcObject | null): boolean;
    /**
     * Returns the name identifying the store type to save to for the given fileType. The default implementation of this method returns information derived from the application's Info.plist. If no store type information is in the Info.plist, the default implementation returns NSXMLStoreType. See NSPersistentStoreCoordinator.h for store type information.
     */
    persistentStoreTypeForFileType$(fileType: _NSString): _NSString;
    /**
     * Overridden to save the document's managed objects referenced by the managed object context. If this is the first time the document is being saved, simply pass nil as the originalContentsURL.
     */
    writeToURL$ofType$forSaveOperation$originalContentsURL$error$(absoluteURL: _NSURL, typeName: _NSString, saveOperation: NSSaveOperationType, absoluteOriginalContentsURL: _NSURL | null, error: NobjcObject | null): boolean;
    /**
     * Overridden to load the document's managed objects through the managed object context.
     */
    readFromURL$ofType$error$(absoluteURL: _NSURL, typeName: _NSString, error: NobjcObject | null): boolean;
    /**
     * Overridden to clean up the managedObjectContext and controllers during a revert.
     */
    revertToContentsOfURL$ofType$error$(inAbsoluteURL: _NSURL, inTypeName: _NSString, outError: NobjcObject | null): boolean;
    /**
     * This method is deprecated. Please use -configurePersistentStoreCoordinatorForURL:ofType:modelConfiguration:storeOptions:error: instead
     * @deprecated
     */
    configurePersistentStoreCoordinatorForURL$ofType$error$(url: _NSURL, fileType: _NSString, error: NobjcObject | null): boolean;
    /**
     * Persistent documents always have a managed context (and a persistent store coordinator through that context).
     */
    managedObjectContext(): _NSManagedObjectContext | null;
    setManagedObjectContext$(value: _NSManagedObjectContext | null): void;
    /**
     * By default the framework will create a merged model of all models found in the main bundle. Subclasses can return a specific model to use for creating persistent stores.
     */
    managedObjectModel(): _NSManagedObjectModel | null;
}
