import type { NobjcObject } from "objc-js";
import type { _VNDetectedObjectObservation } from "./VNDetectedObjectObservation.js";
import type { _VNImageBasedRequest } from "./VNImageBasedRequest.js";
import type { VNRequestTrackingLevel } from "./VNRequestTrackingLevel.js";
export declare class _VNTrackingRequest extends _VNImageBasedRequest {
    static alloc(): _VNTrackingRequest;
    static new(): _VNTrackingRequest;
    init(): _VNTrackingRequest;
    /**
     * This class method returns a maximum number of allowed simultaneously executed trackers for [request revision x tracking level] combination The total number of simultaneously running trackes is limited due to performance concerns. There is a limit for each combination of [request revision x tracking level] and this method could be used to query that limit The revision of a specific tracking request (an object of a subclass of VNTrackingRequest). Tracking level of a specific tracking request (an object of a subclass of VNTrackingRequest). The address of a variable that will be populated with an error upon failure. If the caller does not need this information, NULL can be passed. Maximum number of trackers for a given combination [request revision x tracking level], or 0 if such combination doesn't exist
     */
    supportedNumberOfTrackersAndReturnError$(error: NobjcObject | null): number;
    /**
     * The observation object that defines a region to track. Providing an observation not returned from a tracker (e.g. user-defined, or from a detector) begins a new tracker for the sequence. Providing an observation that was returned from a tracker continues the use of that tracker, to track the region to the next frame. In general, unless documented in the request's documentation, the rectangle must be defined in normalized coordinates (both dimensions normalized to [0,1] with the origin at the lower-left corner).
     */
    inputObservation(): _VNDetectedObjectObservation;
    setInputObservation$(value: _VNDetectedObjectObservation): void;
    /**
     * Tracking level allows tuning tracking algorithm to prefer speed (VNRequestTrackingLevelFast) vs. tracking object location accuracy (VNRequestTrackingLevelAccurate). This property has no effect on general purpose object tracker (VNTrackObjectRequest) revision 2 (VNTrackObjectRequestRevision2)
     */
    trackingLevel(): VNRequestTrackingLevel;
    setTrackingLevel$(value: VNRequestTrackingLevel): void;
    /**
     * This property allows marking the last frame for tracking using current tracker. If set to YES, the results for this frame will be processed and returned and the current tracker will be released to the pool of available trackers
     */
    lastFrame(): boolean;
    setLastFrame$(value: boolean): void;
}
