import type { NobjcObject } from "objc-js";
import type { _NSData } from "../Foundation/NSData.js";
import type { _NSDictionary } from "../Foundation/NSDictionary.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { _PHAsset } from "./PHAsset.js";
import type { _PHImageRequestOptions } from "./PHImageRequestOptions.js";
import type { _PHLivePhoto } from "./PHLivePhoto.js";
import type { _PHLivePhotoRequestOptions } from "./PHLivePhotoRequestOptions.js";
import type { _PHVideoRequestOptions } from "./PHVideoRequestOptions.js";
import type { _NSImage } from "../AppKit/NSImage.js";
import type { _AVAsset } from "../AVFoundation/AVAsset.js";
import type { _AVAssetExportSession } from "../AVFoundation/AVAssetExportSession.js";
import type { _AVAudioMix } from "../AVFoundation/AVAudioMix.js";
import type { _AVPlayerItem } from "../AVFoundation/AVPlayerItem.js";
import type { CGSize } from "../structs/CGSize.js";
import type { PHImageContentMode } from "./PHImageContentMode.js";
import type { UIImageOrientation } from "./UIImageOrientation.js";
export declare class _PHImageManager extends _NSObject {
    static alloc(): _PHImageManager;
    static new(): _PHImageManager;
    init(): _PHImageManager;
    static defaultManager(): _PHImageManager;
    requestImageForAsset$targetSize$contentMode$options$resultHandler$(asset: _PHAsset, targetSize: CGSize, contentMode: PHImageContentMode, options: _PHImageRequestOptions | null, resultHandler: ((result: _NSImage, info: _NSDictionary) => void) | null): number;
    /**
     * Request largest represented image as data bytes for the specified asset. The asset whose image data is to be loaded. Options specifying how Photos should handle the request, format the requested image, and notify your app of progress or errors. If PHImageRequestOptionsVersionCurrent is requested and the asset has adjustments then the largest rendered image data is returned. In all other cases then the original image data is returned. A block that is called exactly once either synchronously on the current thread or asynchronously on the main thread depending on the synchronous option specified in the PHImageRequestOptions options parameter (deliveryMode is ignored).
     * @deprecated -requestImageDataAndOrientationForAsset:options:resultHandler:
     */
    requestImageDataForAsset$options$resultHandler$(asset: _PHAsset, options: _PHImageRequestOptions | null, resultHandler: ((imageData: _NSData, dataUTI: _NSString, orientation: UIImageOrientation, info: _NSDictionary) => void) | null): number;
    /**
     * Request largest represented image as data bytes and EXIF orientation for the specified asset. The asset whose image data is to be loaded. Options specifying how Photos should handle the request, format the requested image, and notify your app of progress or errors. If PHImageRequestOptionsVersionCurrent is requested and the asset has adjustments then the largest rendered image data is returned. In all other cases then the original image data is returned. A block that is called exactly once either synchronously on the current thread or asynchronously on the main thread depending on the synchronous option specified in the PHImageRequestOptions options parameter (deliveryMode is ignored). Orientation is an EXIF orientation as an CGImagePropertyOrientation. For iOS or tvOS, convert this to an UIImageOrientation.
     */
    requestImageDataAndOrientationForAsset$options$resultHandler$(asset: _PHAsset, options: _PHImageRequestOptions | null, resultHandler: ((imageData: _NSData, dataUTI: _NSString, orientation: NobjcObject, info: _NSDictionary) => void) | null): number;
    cancelImageRequest$(requestID: number): void;
    /**
     * Requests a live photo representation of the asset. With PHImageRequestOptionsDeliveryModeOpportunistic (or if no options are specified), the resultHandler block may be called more than once (the first call may occur before the method returns). The PHImageResultIsDegradedKey key in the result handler's info parameter indicates when a temporary low-quality live photo is provided.
     */
    requestLivePhotoForAsset$targetSize$contentMode$options$resultHandler$(asset: _PHAsset, targetSize: CGSize, contentMode: PHImageContentMode, options: _PHLivePhotoRequestOptions | null, resultHandler: ((livePhoto: _PHLivePhoto, info: _NSDictionary) => void) | null): number;
    /** Playback only. The result handler is called on an arbitrary queue. */
    requestPlayerItemForVideo$options$resultHandler$(asset: _PHAsset, options: _PHVideoRequestOptions | null, resultHandler: ((playerItem: _AVPlayerItem, info: _NSDictionary) => void) | null): number;
    /** Export. The result handler is called on an arbitrary queue. */
    requestExportSessionForVideo$options$exportPreset$resultHandler$(asset: _PHAsset, options: _PHVideoRequestOptions | null, exportPreset: _NSString, resultHandler: ((exportSession: _AVAssetExportSession, info: _NSDictionary) => void) | null): number;
    /** Everything else. The result handler is called on an arbitrary queue. */
    requestAVAssetForVideo$options$resultHandler$(asset: _PHAsset, options: _PHVideoRequestOptions | null, resultHandler: ((asset: _AVAsset, audioMix: _AVAudioMix, info: _NSDictionary) => void) | null): number;
}
