import type { NobjcObject } from "objc-js";
import type { _NSArray } from "./NSArray.js";
import type { _NSCopying } from "./NSCopying.js";
import type { _NSData } from "./NSData.js";
import type { _NSDictionary } from "./NSDictionary.js";
import type { _NSError } from "./NSError.js";
import type { _NSItemProviderReading } from "./NSItemProviderReading.js";
import type { _NSItemProviderWriting } from "./NSItemProviderWriting.js";
import type { _NSObject } from "./NSObject.js";
import type { _NSProgress } from "./NSProgress.js";
import type { _NSSecureCoding } from "./NSSecureCoding.js";
import type { _NSString } from "./NSString.js";
import type { _NSURL } from "./NSURL.js";
import type { NSItemProviderFileOptions } from "./NSItemProviderFileOptions.js";
import type { NSItemProviderRepresentationVisibility } from "./NSItemProviderRepresentationVisibility.js";
export declare class _NSItemProvider extends _NSObject {
    static alloc(): _NSItemProvider;
    static new(): _NSItemProvider;
    init(): _NSItemProvider;
    /** Registers a data-backed representation. */
    registerDataRepresentationForTypeIdentifier$visibility$loadHandler$(typeIdentifier: _NSString, visibility: NSItemProviderRepresentationVisibility, loadHandler: ((arg0: (arg0: _NSData, arg1: _NSError) => void) => _NSProgress) | null): void;
    /**
     * Registers a file-backed representation. Set `coordinated` to YES if the returned file must be accessed using NSFileCoordinator. If `NSItemProviderFileOptionOpenInPlace` is not provided, the file provided will be copied before the load handler returns.
     */
    registerFileRepresentationForTypeIdentifier$fileOptions$visibility$loadHandler$(typeIdentifier: _NSString, fileOptions: NSItemProviderFileOptions, visibility: NSItemProviderRepresentationVisibility, loadHandler: ((arg0: (arg0: _NSURL, arg1: boolean, arg2: _NSError) => void) => _NSProgress) | null): void;
    registeredTypeIdentifiersWithFileOptions$(fileOptions: NSItemProviderFileOptions): _NSArray;
    /**
     * Returns YES if the item provider has at least one item that conforms to the supplied type identifier.
     */
    hasItemConformingToTypeIdentifier$(typeIdentifier: _NSString): boolean;
    hasRepresentationConformingToTypeIdentifier$fileOptions$(typeIdentifier: _NSString, fileOptions: NSItemProviderFileOptions): boolean;
    /** Copies the provided data into an NSData object. */
    loadDataRepresentationForTypeIdentifier$completionHandler$(typeIdentifier: _NSString, completionHandler: ((data: _NSData, error: _NSError) => void) | null): _NSProgress;
    /**
     * Writes a copy of the data to a temporary file. This file will be deleted when the completion handler returns. Your program should copy or move the file within the completion handler.
     */
    loadFileRepresentationForTypeIdentifier$completionHandler$(typeIdentifier: _NSString, completionHandler: ((url: _NSURL, error: _NSError) => void) | null): _NSProgress;
    /**
     * Open the original file in place, if possible. If a file is not available for opening in place, a copy of the file is written to a temporary location, and `isInPlace` is set to NO. Your program may then copy or move the file, or the system will delete this file at some point in the future.
     */
    loadInPlaceFileRepresentationForTypeIdentifier$completionHandler$(typeIdentifier: _NSString, completionHandler: ((url: _NSURL, isInPlace: boolean, error: _NSError) => void) | null): _NSProgress;
    /**
     * Instantiate an NSItemProvider by querying an object for its eligible type identifiers via the NSItemProviderWriting protocol.
     */
    initWithObject$(object_: _NSItemProviderWriting): _NSItemProvider;
    /**
     * Add representations from an object using the NSItemProviderWriting protocol. Duplicate representations are ignored.
     */
    registerObject$visibility$(object_: _NSItemProviderWriting, visibility: NSItemProviderRepresentationVisibility): void;
    /** Add representations from a class, but defer loading the object until needed. */
    registerObjectOfClass$visibility$loadHandler$(aClass: NobjcObject, visibility: NSItemProviderRepresentationVisibility, loadHandler: ((arg0: (arg0: _NSItemProviderWriting, arg1: _NSError) => void) => _NSProgress) | null): void;
    canLoadObjectOfClass$(aClass: NobjcObject): boolean;
    /** Instantiate an object using the NSItemProviderReading protocol. */
    loadObjectOfClass$completionHandler$(aClass: NobjcObject, completionHandler: ((object: _NSItemProviderReading, error: _NSError) => void) | null): _NSProgress;
    /**
     * Initialize an NSItemProvider with an object assigned to a single UTI. `item` is retained.
     */
    initWithItem$typeIdentifier$(item: _NSSecureCoding | null, typeIdentifier: _NSString | null): _NSItemProvider;
    /**
     * Initialize an NSItemProvider with load handlers for the given file URL, and the file content. A type identifier is inferred from the file extension.
     */
    initWithContentsOfURL$(fileURL: _NSURL): _NSItemProvider | null;
    /** Registers a load handler that returns an object, assigned to a single UTI. */
    registerItemForTypeIdentifier$loadHandler$(typeIdentifier: _NSString, loadHandler: (arg0: (arg0: _NSSecureCoding, arg1: _NSError) => void, arg1: NobjcObject, arg2: _NSDictionary) => void): void;
    /**
     * Loads the best matching item for a type identifier. The returned object depends on the class specified for the completion handler's `item` parameter. See the table above for coercion rules.
     */
    loadItemForTypeIdentifier$options$completionHandler$(typeIdentifier: _NSString, options: _NSDictionary | null, completionHandler: ((arg0: _NSSecureCoding, arg1: _NSError) => void) | null): void;
    /**
     * Loads the preview image for this item by either calling the supplied preview block or falling back to a QuickLook-based handler. This method, like loadItemForTypeIdentifier:options:completionHandler:, supports implicit type coercion for the item parameter of the completion block. Allowed value classes are: NSData, NSURL, UIImage/NSImage.
     */
    loadPreviewImageWithOptions$completionHandler$(options: _NSDictionary, completionHandler: (arg0: _NSSecureCoding, arg1: _NSError) => void): void;
    /**
     * Returns the list of registered type identifiers, in the order they were registered.
     */
    registeredTypeIdentifiers(): _NSArray;
    suggestedName(): _NSString | null;
    setSuggestedName$(value: _NSString | null): void;
    /**
     * Sets a custom preview image handler block for this item provider. The returned item should preferably be NSData or a file NSURL.
     */
    previewImageHandler(): ((arg0: (arg0: _NSSecureCoding, arg1: _NSError) => void, arg1: NobjcObject, arg2: _NSDictionary) => void) | null;
    setPreviewImageHandler$(value: ((arg0: (arg0: _NSSecureCoding, arg1: _NSError) => void, arg1: NobjcObject, arg2: _NSDictionary) => void) | null): void;
}
export interface _NSItemProvider extends _NSCopying {
}
