import type { NobjcObject } from "objc-js";
import type { _NSDate } from "../Foundation/NSDate.js";
import type { _NSDictionary } from "../Foundation/NSDictionary.js";
import type { _NSMutableDictionary } from "../Foundation/NSMutableDictionary.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { _ICCameraDevice } from "./ICCameraDevice.js";
import type { _ICCameraFolder } from "./ICCameraFolder.js";
export declare class _ICCameraItem extends _NSObject {
    static alloc(): _ICCameraItem;
    static new(): _ICCameraItem;
    init(): _ICCameraItem;
    /**
     * @method requestThumbnail @abstract This method requests thumbnail for the item. If one is not readily available, accessing this property will send a message to the device requesting a thumbnail for the file. The delegate of the device will be notified via method "cameraDevice:didReceiveThumbnail:forItem:error:", if this method is implemented by the delegate. @note Execution of the delegate callback will occur on the main thread.
     */
    requestThumbnail(): void;
    /**
     * @method requestMetadata @abstract ￼Metadata for the file if one is readily available. If one is not readily available, accessing this property will send a message to the device requesting metadata for the file. The delegate of the device will be notified via method "cameraDevice:didReceiveMetadata:forItem:error:", if this method is implemented by the delegate. @note Execution of the delegate callback will occur on the main thread.
     */
    requestMetadata(): void;
    /** @method flushThumbnailCache @abstract ￼Deletes cached thumbnail for the item. */
    flushThumbnailCache(): void;
    /** @method flushMetadataCache @abstract ￼Deletes cached metadata for the item. */
    flushMetadataCache(): void;
    /** @property device @abstract ￼Parent device of this item. */
    device(): _ICCameraDevice | null;
    /**
     * @property parentFolder @abstract ￼Parent folder of this folder. The root folder's parentFolder is nil.
     */
    parentFolder(): _ICCameraFolder | null;
    /** @property name @abstract ￼Name of this item. */
    name(): _NSString | null;
    /**
     * @property UTI @abstract ￼Item UTI. This is an Uniform Type Identifier string. It is one of: kUTTypeFolder, kUTTypeImage, kUTTypeMovie, kUTTypeAudio, or kUTTypeData.
     */
    UTI(): _NSString | null;
    /**
     * @property fileSystemPath @abstract ￼The file system path of the item for items on a device with transportType of ICTransportTypeMassStorage.
     */
    fileSystemPath(): NobjcObject;
    /**
     * @property locked @abstract ￼Indicates the protection state of this item. It is locked if the storage card in the camera is locked.
     */
    locked(): boolean;
    /** @property raw @abstract ￼Indicates if the file is a raw image file. */
    raw(): boolean;
    /**
     * @property inTemporaryStore @abstract ￼Indicates if this folder is in a temporary store. A temporary store may be used by the device when images are captures on the device when it is tethered to the computer.
     */
    inTemporaryStore(): boolean;
    /**
     * @property creationDate @abstract ￼Creation date of this file. This information is usually the same as the EXIF creation date.
     */
    creationDate(): _NSDate | null;
    /**
     * @property modificationDate @abstract ￼Modification date of this file. This information is usually the same as the EXIF modification date.
     */
    modificationDate(): _NSDate | null;
    /**
     * @property thumbnail @abstract ￼Thumbnail for the item. The value of this property is NULL unless a 'requestThumbnail' message is sent to this object.
     */
    thumbnail(): NobjcObject;
    /**
     * @property metadata @abstract ￼Metadata for the item. The value of this property is NULL unless a 'requestMetadata' message is sent to this object.
     */
    metadata(): _NSDictionary | null;
    /**
     * @property userData @abstract ￼A mutable dictionary to store arbitrary key-value pairs associated with a camera item object. This can be used by view objects that bind to this object to store "house-keeping" information.
     */
    userData(): _NSMutableDictionary | null;
    /**
     * @property ptpObjectHandle @abstract PTP object handle value if the item is on a camera that uses PTP protocol. The value of this property is set to 0 if the camera does not use PTP protocol.
     */
    ptpObjectHandle(): number;
    /**
     * @property addedAfterContentCatalogCompleted @abstract This property is set if the file is captured on the device after the device's content is fully enumerated. This does not apply to files added as a result of adding a new store to the device.
     */
    addedAfterContentCatalogCompleted(): boolean;
    /** @property thumbnailIfAvailable */
    thumbnailIfAvailable(): NobjcObject;
    /** @property largeThumbnailIfAvailable */
    largeThumbnailIfAvailable(): NobjcObject;
    /** @property metadataIfAvailable */
    metadataIfAvailable(): NobjcObject;
}
