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 { _AVCameraCalibrationData } from "./AVCameraCalibrationData.js";
import type { _AVCaptureBracketedStillImageSettings } from "./AVCaptureBracketedStillImageSettings.js";
import type { _AVCapturePhotoFileDataRepresentationCustomizer } from "./AVCapturePhotoFileDataRepresentationCustomizer.js";
import type { _AVCaptureResolvedPhotoSettings } from "./AVCaptureResolvedPhotoSettings.js";
import type { _AVDepthData } from "./AVDepthData.js";
import type { _AVPortraitEffectsMatte } from "./AVPortraitEffectsMatte.js";
import type { _AVSemanticSegmentationMatte } from "./AVSemanticSegmentationMatte.js";
import type { CMTime } from "../structs/CMTime.js";
import type { AVCaptureDeviceType } from "./AVCaptureDeviceType.js";
import type { AVCaptureLensStabilizationStatus } from "./AVCaptureLensStabilizationStatus.js";
import type { AVSemanticSegmentationMatteType } from "./AVSemanticSegmentationMatteType.js";
export declare class _AVCapturePhoto extends _NSObject {
    static alloc(): _AVCapturePhoto;
    static new(): _AVCapturePhoto;
    init(): _AVCapturePhoto;
    /**
     * @method semanticSegmentationMatteForType: @abstract An accessor for semantic segmentation mattes associated with this photo. @param semanticSegmentationMatteType The matte type of interest (hair, skin, etc). @result An instance of AVSemanticSegmentationMatte, or nil if none could be found for the specified type. @discussion If you requested one or more semantic segmentation mattes by calling -[AVCapturePhotoSettings setEnabledSemanticSegmentationMatteTypes:] with a non-empty array of types, this property offers access to the resulting AVSemanticSegmentationMatte objects. Nil is returned if you did not request semantic segmentation matte delivery, or if no mattes of the specified type are available. Note that semantic segmentation mattes are only embedded in the photo's internal file format container if you call -[AVCapturePhotoSettings setEmbedsSemanticSegmentationMattesInPhoto:YES].
     */
    semanticSegmentationMatteForType$(semanticSegmentationMatteType: AVSemanticSegmentationMatteType): _AVSemanticSegmentationMatte | null;
    /**
     * @method fileDataRepresentation @abstract Flattens the AVCapturePhoto to an NSData using the file container format (processedFileType or rawFileType) specified in the AVCapturePhotoSettings (e.g. JFIF, HEIF, DNG, DICOM). @result An NSData containing bits in the file container's format, or nil if the flattening process fails.
     */
    fileDataRepresentation(): _NSData | null;
    /**
     * @method fileDataRepresentationWithCustomizer: @abstract Flattens the AVCapturePhoto to an NSData using the file container format (processedFileType or rawFileType) specified in the AVCapturePhotoSettings (e.g. JFIF, HEIF, DNG, DICOM), and allows you to strip or replace various pieces of metadata in the process. @param customizer An object conforming to the AVCapturePhotoFileDataRepresentationCustomizer protocol that will be called synchronously to provide customization of metadata written to the container format. An NSInvalidArgumentException is thrown if you pass nil. @result An NSData containing bits in the file container's format, or nil if the flattening process fails.
     */
    fileDataRepresentationWithCustomizer$(customizer: _AVCapturePhotoFileDataRepresentationCustomizer): _NSData | null;
    /**
     * @method fileDataRepresentationWithReplacementMetadata:replacementEmbeddedThumbnailPhotoFormat:replacementEmbeddedThumbnailPixelBuffer:replacementDepthData: @abstract Flattens the AVCapturePhoto to an NSData using the file container format (processedFileType or rawFileType) specified in the AVCapturePhotoSettings (e.g. JFIF, HEIF, DNG, DICOM), and allows you to replace metadata, thumbnail, and depth data in the process. @param replacementMetadata A dictionary of keys and values from <ImageIO/CGImageProperties.h>. To preserve existing metadata to the file, pass self.metadata. To strip existing metadata, pass nil. To replace metadata, pass a replacement dictionary. @param replacementEmbeddedThumbnailPhotoFormat A dictionary of keys and values from <AVFoundation/AVVideoSettings.h>. If you pass a non-nil dictionary, AVVideoCodecKey is required, with AVVideoWidthKey and AVVideoHeightKey being optional. To preserve the existing embedded thumbnail photo to the file, pass self.embeddedThumbnailPhotoFormat and pass nil as your replacementEmbeddedThumbnailPixelBuffer parameter. To strip the existing embedded thumbnail, pass nil for both replacementEmbeddedThumbnailPhotoFormat and replacementEmbeddedThumbnailPixelBuffer. To replace the existing embedded thumbnail photo, pass both a non-nil replacementThumbnailPixelBuffer and replacementEmbeddedThumbnailPhotoFormat dictionary. @param replacementEmbeddedThumbnailPixelBuffer A pixel buffer containing a source image to be encoded to the file as the replacement thumbnail image. To preserve the existing embedded thumbnail photo to the file, pass self.embeddedThumbnailPhotoFormat as your replacementEmbeddedThumbnailPhotoFormat parameter and nil as your replacementEmbeddedThumbnailPixelBuffer parameter. To strip the existing embedded thumbnail, pass nil for both replacementEmbeddedThumbnailPhotoFormat and replacementEmbeddedThumbnailPixelBuffer. To replace the existing embedded thumbnail photo, pass both a non-nil replacementThumbnailPixelBuffer and replacementEmbeddedThumbnailPhotoFormat dictionary. @param replacementDepthData Replacement depth data to be written to the flattened file container. To preserve existing depth data to the file, pass self.depthData. To strip it, pass nil. To replace it, pass a new AVDepthData instance. @result An NSData containing bits in the file container's format, or nil if the flattening process fails.
     * @deprecated fileDataRepresentationWithCustomizer:
     */
    fileDataRepresentationWithReplacementMetadata$replacementEmbeddedThumbnailPhotoFormat$replacementEmbeddedThumbnailPixelBuffer$replacementDepthData$(replacementMetadata: _NSDictionary | null, replacementEmbeddedThumbnailPhotoFormat: _NSDictionary | null, replacementEmbeddedThumbnailPixelBuffer: NobjcObject | null, replacementDepthData: _AVDepthData | null): _NSData | null;
    /**
     * @method CGImageRepresentation @abstract Utility method that converts the AVCapturePhoto's primary photo to a CGImage. @result A CGImageRef, or nil if the conversion process fails. @discussion Each time you access this method, AVCapturePhoto generates a new CGImageRef. When backed by a compressed container (such as HEIC), the CGImageRepresentation is decoded lazily as needed. When backed by an uncompressed format such as BGRA, it is copied into a separate backing buffer whose lifetime is not tied to that of the AVCapturePhoto. For a 12 megapixel image, a BGRA CGImage represents ~48 megabytes per call. If you only intend to use the CGImage for on-screen rendering, use the previewCGImageRepresentation instead. Note that the physical rotation of the CGImageRef matches that of the main image. Exif orientation has not been applied. If you wish to apply rotation when working with UIImage, you can do so by querying the photo's metadata[kCGImagePropertyOrientation] value, and passing it as the orientation parameter to +[UIImage imageWithCGImage:scale:orientation:]. RAW images always return a CGImageRepresentation of nil. If you wish to make a CGImageRef from a RAW image, use CIRAWFilter in the CoreImage framework.
     */
    CGImageRepresentation(): NobjcObject;
    /**
     * @method CGImageRepresentation @abstract Utility method that converts the AVCapturePhoto's preview photo to a CGImage. @result A CGImageRef, or nil if the conversion process fails, or if you did not request a preview photo. @discussion Each time you access this method, AVCapturePhoto generates a new CGImageRef. This CGImageRepresentation is a RGB rendering of the previewPixelBuffer property. If you did not request a preview photo by setting the -[AVCapturePhotoSettings previewPhotoFormat] property, this method returns nil. Note that the physical rotation of the CGImageRef matches that of the main image. Exif orientation has not been applied. If you wish to apply rotation when working with UIImage, you can do so by querying the photo's metadata[kCGImagePropertyOrientation] value, and passing it as the orientation parameter to +[UIImage imageWithCGImage:scale:orientation:].
     */
    previewCGImageRepresentation(): NobjcObject;
    /**
     * @property timestamp @abstract The time at which this image was captured, synchronized to the synchronizationClock of the AVCaptureSession @discussion The timestamp property indicates the time the image was captured, and is analogous to CMSampleBufferGetPresentationTimeStamp(). If an error was provided in the -captureOutput:didFinishingProcessingPhoto:error: callback, timestamp returns kCMTimeInvalid.
     */
    timestamp(): CMTime;
    /**
     * @property rawPhoto @abstract This property returns YES if this photo is a RAW image. @discussion Your AVCapturePhotoCaptureDelegate's -captureOutput:didFinishingProcessingPhoto:error: method may be called one or more times with image results, including RAW or non-RAW images. This property distinguishes RAW from non-RAW image results, for instance, if you've requested a RAW + JPEG capture.
     */
    rawPhoto(): boolean;
    /**
     * @property pixelBuffer @abstract For uncompressed or RAW captures, this property offers access to the pixel data. @discussion Uncompressed captures, such as '420f' or 'BGRA', Bayer RAW captures, such as 'bgg4', or Apple ProRAW captures, such as 'l64r', present pixel data as a CVPixelBuffer. See AVCapturePhotoOutput's -appleProRAWEnabled for a discussion on the differences between Bayer RAW and Apple ProRAW. This property is analogous to CMSampleBufferGetImageBuffer(). The pixel buffer contains only the minimal attachments required for correct display. Compressed captures, such as 'jpeg', return nil.
     */
    pixelBuffer(): NobjcObject;
    /**
     * @property previewPixelBuffer @abstract This property offers access to the preview image pixel data if you've requested it. @discussion If you requested a preview image by calling -[AVCapturePhotoSettings setPreviewPhotoFormat:] with a non-nil value, this property offers access to the resulting preview image pixel data, and is analogous to CMSampleBufferGetImageBuffer(). The pixel buffer contains only the minimal attachments required for correct display. Nil is returned if you did not request a preview image.
     */
    previewPixelBuffer(): NobjcObject;
    /**
     * @property embeddedThumbnailPhotoFormat @abstract The format of the embedded thumbnail contained in this AVCapturePhoto. @discussion If you requested an embedded thumbnail image by calling -[AVCapturePhotoSettings setEmbeddedThumbnailPhotoFormat:] with a non-nil value, this property offers access to the resolved embedded thumbnail AVVideoSettings dictionary. Nil is returned if you did not request an embedded thumbnail image.
     */
    embeddedThumbnailPhotoFormat(): _NSDictionary;
    /**
     * @property depthData @abstract An AVDepthData object wrapping a disparity/depth map associated with this photo. @discussion If you requested depth data delivery by calling -[AVCapturePhotoSettings setDepthDataDeliveryEnabled:YES], this property offers access to the resulting AVDepthData object. Nil is returned if you did not request depth data delivery. Note that the depth data is only embedded in the photo's internal file format container if you set -[AVCapturePhotoSettings setEmbedsDepthDataInPhoto:YES].
     */
    depthData(): _AVDepthData;
    /**
     * @property portraitEffectsMatte @abstract An AVPortraitEffectsMatte object wrapping a matte associated with this photo. @discussion If you requested portrait effects matte delivery by calling -[AVCapturePhotoSettings setPortraitEffectsMatteDeliveryEnabled:YES], this property offers access to the resulting AVPortraitEffectsMatte object. Nil is returned if you did not request portrait effects matte delivery. Note that the portrait effects matte is only embedded in the photo's internal file format container if you set -[AVCapturePhotoSettings setEmbedsPortraitEffectsMatteInPhoto:YES].
     */
    portraitEffectsMatte(): _AVPortraitEffectsMatte;
    /**
     * @property metadata @abstract An ImageIO property style dictionary of metadata associated with this photo. @discussion Valid metadata keys are found in <ImageIO/CGImageProperties.h>, such as kCGImagePropertyOrientation, kCGImagePropertyExifDictionary, kCGImagePropertyMakerAppleDictionary, etc.
     */
    metadata(): _NSDictionary;
    /**
     * @property cameraCalibrationData @abstract An AVCameraCalibrationData object representing the calibration information for the camera providing the photo. @discussion Camera calibration data is only present if you set AVCapturePhotoSettings.setCameraCalibrationDataDeliveryEnabled to YES. When requesting virtual device constituent photo delivery plus cameraCalibrationDataDeliveryEnabled, camera calibration information is delivered with all resultant photos and is specific to the constituent device producing that photo.
     */
    cameraCalibrationData(): _AVCameraCalibrationData;
    /**
     * @property resolvedSettings @abstract The AVCaptureResolvedPhotoSettings associated with all photo results for a given -[AVCapturePhotoOutput capturePhotoWithSettings:delegate:] request. @discussion Even in the event of an error, the resolved settings are always non nil.
     */
    resolvedSettings(): _AVCaptureResolvedPhotoSettings;
    /**
     * @property photoCount @abstract This photo's index (1-based) in the total expected photo count. @discussion The resolvedSettings.expectedPhotoCount property indicates the total number of images that will be returned for a given capture request. This property indicates this photo's index (1-based). When you receive a -captureOutput:didFinishProcessingPhoto:error: callback with a photo whose photoCount matches resolvedSettings.expectedPhotoCount, you know you've received the last one for the given capture request.
     */
    photoCount(): number;
    /**
     * @property sourceDeviceType @abstract The device type of the source camera providing the photo. @discussion When taking a virtual device constituent photo capture, you may query this property to find out the source type of the photo. For instance, on a DualCamera, resulting photos will be of sourceDeviceType AVCaptureDeviceTypeBuiltInWideCamera, or AVCaptureDeviceTypeBuiltInTelephotoCamera. For all other types of capture, the source device type is equal to the -[AVCaptureDevice deviceType] of the AVCaptureDevice to which the AVCapturePhotoOutput is connected. Returns nil if the source of the photo is not an AVCaptureDevice.
     */
    sourceDeviceType(): AVCaptureDeviceType;
    /**
     * @property constantColorConfidenceMap @abstract Returns a pixel buffer with the same aspect ratio as the constant color photo, where each pixel value (unsigned 8-bit integer) indicates how fully the constant color effect has been achieved in the corresponding region of the constant color photo -- 255 means full confidence, 0 means zero confidence. @discussion NULL is returned for any non constant color photos.
     */
    constantColorConfidenceMap(): NobjcObject;
    /**
     * @property constantColorCenterWeightedMeanConfidenceLevel @abstract Returns a score summarizing the overall confidence level of a constant color photo -- 1.0 means full confidence, 0.0 means zero confidence. @discussion Default is 0.0. In most use cases (document scanning for example), the central region of the photo is considered more important than the peripherals, therefore the confidence level of the central pixels are weighted more heavily than pixels on the edges of the photo. Use constantColorConfidenceMap for more use case specific analyses of the confidence level.
     */
    constantColorCenterWeightedMeanConfidenceLevel(): number;
    /**
     * @property constantColorFallbackPhoto @abstract Indicates whether this photo is a fallback photo for a constant color capture.
     */
    constantColorFallbackPhoto(): boolean;
    /**
     * @property bracketSettings @abstract The AVCaptureBracketedStillImageSettings associated with this photo. @discussion When specifying a bracketed capture using AVCapturePhotoBracketSettings, you specify an array of AVCaptureBracketedStillImageSettings -- one per image in the bracket. This property indicates the AVCaptureBracketedStillImageSettings associated with this particular photo, or nil if this photo is not part of a bracketed capture.
     */
    bracketSettings(): _AVCaptureBracketedStillImageSettings | null;
    /**
     * @property sequenceCount @abstract 1-based sequence count of the photo. @discussion If this photo is part of a bracketed capture (invoked using AVCapturePhotoBracketSettings), this property indicates the current result's count in the sequence, starting with 1 for the first result, or 0 if this photo is not part of a bracketed capture.
     */
    sequenceCount(): number;
    /**
     * @property lensStabilizationStatus @abstract The status of the lens stabilization module during capture of this photo. @discussion In configurations where lens stabilization (OIS) is unsupported, AVCaptureLensStabilizationStatusUnsupported is returned. If lens stabilization is supported, but this photo is not part of a bracketed capture in which -[AVCapturePhotoBracketSettings setLensStabilizationEnabled:YES] was called, AVCaptureLensStabilizationStatusOff is returned. Otherwise a lens stabilization status is returned indicating how lens stabilization was applied during the capture.
     */
    lensStabilizationStatus(): AVCaptureLensStabilizationStatus;
}
