import type { _NSObject } from "../Foundation/NSObject.js";
import type { CGRect } from "../structs/CGRect.js";
import type { CMTime } from "../structs/CMTime.js";
import type { AVCaptureCinematicVideoFocusMode } from "./AVCaptureCinematicVideoFocusMode.js";
import type { AVMetadataObjectType } from "./AVMetadataObjectType.js";
export declare class _AVMetadataObject extends _NSObject {
    static alloc(): _AVMetadataObject;
    static new(): _AVMetadataObject;
    init(): _AVMetadataObject;
    /**
     * @property time @abstract The media time associated with this metadata object. @discussion The value of this property is a CMTime associated with the metadata object. For capture, it is the time at which this object was captured. If this metadata object originates from a CMSampleBuffer, its time matches the sample buffer's presentation time. This property may return kCMTimeInvalid.
     */
    time(): CMTime;
    /**
     * @property duration @abstract The media duration associated with this metadata object. @discussion The value of this property is a CMTime representing the duration of the metadata object. If this metadata object originates from a CMSampleBuffer, its duration matches the sample buffer's duration. This property may return kCMTimeInvalid.
     */
    duration(): CMTime;
    /**
     * @property bounds @abstract The bounding rectangle of the receiver. @discussion The value of this property is a CGRect representing the bounding rectangle of the object with respect to the picture in which it resides. The rectangle's origin is top left. If the metadata originates from video, bounds may be expressed as scalar values from 0. - 1. If the original video has been scaled down, the bounds of the metadata object still are meaningful. This property may return CGRectZero if the metadata has no bounds.
     */
    bounds(): CGRect;
    /**
     * @property type @abstract An identifier for the metadata object. @discussion The value of this property is an AVMetadataObjectType representing the type of the metadata object. Clients inspecting a collection of metadata objects can use this property to filter objects with a matching type.
     */
    type(): AVMetadataObjectType;
    /**
     * An identifier associated with a metadata object used to group it with other metadata objects belonging to a common parent. When presented with a collection of ``AVMetadataObject`` instances of different types, you may use the objects' ``groupID`` to combine them into groups. For example, a human body and face belonging to the same person have the same ``groupID``. If an object's ``groupID`` property is set to -1, it is invalid. When set to a value of >=0, it is unique across all object groups.
     */
    groupID(): number;
    /**
     * A unique identifier for each detected object type (face, body, hands, heads and salient objects) in a collection. Defaults to a value of -1 when invalid or not available. When used in conjunction with an ``AVCaptureMetadataOutput``, each newly detected object that enters the scene is assigned a unique identifier. ``objectID``s are never re-used as objects leave the picture and new ones enter. Objects that leave the picture and then re-enter are assigned a new ``objectID``.
     */
    objectID(): number;
    /**
     * The current focus mode when an object is detected during a Cinematic Video recording. Default is ``AVCaptureCinematicVideoFocusMode/AVCaptureCinematicVideoFocusModeNone``.
     */
    cinematicVideoFocusMode(): AVCaptureCinematicVideoFocusMode;
    /** A BOOL indicating whether this metadata object represents a fixed focus. */
    fixedFocus(): boolean;
}
