import type { NobjcObject } from "objc-js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _MTLCommandQueue } from "../Metal/MTLCommandQueue.js";
import type { _CNBoundsPrediction } from "./CNBoundsPrediction.js";
import type { _CNDetectionTrack } from "./CNDetectionTrack.js";
import type { CGPoint } from "../structs/CGPoint.js";
import type { CGRect } from "../structs/CGRect.js";
import type { CMTime } from "../structs/CMTime.js";
export declare class _CNObjectTracker extends _NSObject {
    static alloc(): _CNObjectTracker;
    static new(): _CNObjectTracker;
    init(): _CNObjectTracker;
    /** Indicates whether the current device supports object detection and tracking. */
    static isSupported(): boolean;
    /**
     * Create a new detection track builder. - Parameters: - commandQueue: the command queue of a metal device to which commands should be submitted to perform work
     */
    initWithCommandQueue$(commandQueue: _MTLCommandQueue): _CNObjectTracker;
    /**
     * Find the bounds of an object at the given point. Can be used to convert a normalized point in an image to a rectangle that can be used to start tracking. - Parameters: - point: location of object in image in normalized coordinates where (0.0, 0.0) is the upper left corner, and (1.0, 1.0) is the lower right - sourceImage: pixel buffer containing the image - Returns: A prediction, which includes bounds that can be used to start tracking, or `nil` if no discernible object is detected.
     */
    findObjectAtPoint$sourceImage$(point: CGPoint, sourceImage: NobjcObject): _CNBoundsPrediction | null;
    /**
     * Start creating a detection track to track an object within the given bounds. - Parameters: - time: the presentation time of the first frame in the detection track - normalizedBounds: the bounds of the object to track in normalized coordinates where (0.0, 0.0) is the upper left corner, and (1.0, 1.0) is the lower right - sourceImage: image buffer containing the image - sourceDisparity: disparity buffer containing depth information - Returns: whether the object can be tracked - Note: if the object can be tracked, a detection is added to the detection track being built
     */
    startTrackingAt$within$sourceImage$sourceDisparity$(time: CMTime, normalizedBounds: CGRect, sourceImage: NobjcObject, sourceDisparity: NobjcObject): boolean;
    /**
     * Continue tracking an object for which tracking has started, and add a new detection to the detection track being built. - Parameters: - time: the presentation time of the frame to be added to the detection track - Returns: a prediction of where the object is in the source image
     */
    continueTrackingAt$sourceImage$sourceDisparity$(time: CMTime, sourceImage: NobjcObject, sourceDisparity: NobjcObject): _CNBoundsPrediction | null;
    /**
     * Finish constructing the detection track and return it. - Returns: a detection track which tracks the object
     */
    finishDetectionTrack(): _CNDetectionTrack;
    /** Reset the builder to construct a new detection track. */
    resetDetectionTrack(): void;
}
