import type { NobjcObject } from "objc-js";
import type { _NSDictionary } from "../Foundation/NSDictionary.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _NSURL } from "../Foundation/NSURL.js";
import type { _VNRequest } from "./VNRequest.js";
import type { _VNVideoProcessorRequestProcessingOptions } from "./VNVideoProcessorRequestProcessingOptions.js";
import type { CMTimeRange } from "../structs/CMTimeRange.js";
export declare class _VNVideoProcessor extends _NSObject {
    static alloc(): _VNVideoProcessor;
    static new(): _VNVideoProcessor;
    init(): _VNVideoProcessor;
    /**
     * Creates a VNVideoProcessor to be used for performing requests against a video asset specified by it's URL. A URL pointing at a video asset on which the requests will be performed. The video format has to be supported by AVFoundation.
     */
    initWithURL$(videoURL: _NSURL): _VNVideoProcessor;
    /**
     * Add a VNRequest with the specified processing options to be performed on the video. This method can be called either before calling -analyzeTimeRange:error: or from within one of the already associated request's completion handlers. The VNRequest to be added to the processing pipeline. If added from within a completionHandler, it will be processed on the same frame that is currently being processed. The options applied to the request's processing of the video. Returns an error that happened during scheduling of the requests. Check individual requests results and errors for their respective success and failures. This parameter is optional. Returns true if the request added to the processing pipeline. The VNRequest must have completion handler set otherwise no results can be returned.
     * @deprecated -addRequest:processingOptions:error:
     */
    addRequest$processingOptions$error$(request: _VNRequest, processingOptions: _VNVideoProcessorRequestProcessingOptions, error: NobjcObject | null): boolean;
    /** @deprecated -addRequest:processingOptions:error: */
    addRequest$withProcessingOptions$error$(request: _VNRequest, processingOptions: _NSDictionary, error: NobjcObject | null): boolean;
    /**
     * Remove a VNRequest from the video processor, which means it won't be performed anymore. This method can be called either before calling -analyzeTimeRange:error: or from within one of the already associated request's completion handlers. The VNRequest to be removed from the processing pipeline. Returns an error that happened during processing of the request, such as if the request was not found in the processing queue. This parameter is optional. Returns true if the request was found and removed from the processing pipeline.
     */
    removeRequest$error$(request: _VNRequest, error: NobjcObject | null): boolean;
    /**
     * Processes the video over the specified time range. This call is synchronous and only returns after the video is processed through its duration or an error prevented the processing. Start and duration of the timerange within video to process. If the duration is longer than the video (e.g., kCMTimeIndefinite) the processing stops at the end of the video. Returns an error that happened during the starting of the processing queue (for instance if the time range is not valid for the video asset). This parameter is optional. Returns true if all requests were scheduled and performed. Check individual requests results and errors for their respective success and failures. The intersection of the CMTimeRangeMake(start, duration) and CMTimeRangeMake(kCMTimeZero, asset.duration) will determine the timerange of the video to process
     * @deprecated -analyzeTimeRange:error:
     */
    analyzeTimeRange$error$(timeRange: CMTimeRange, error: NobjcObject | null): boolean;
    /** @deprecated -analyzeTimeRange:error: */
    analyzeWithTimeRange$error$(timeRange: CMTimeRange, error: NobjcObject | null): boolean;
    /**
     * Cancel the processing of the video. This can return before the last request has completed.
     */
    cancel(): void;
}
