import type { _VNImageBasedRequest } from "./VNImageBasedRequest.js";
import type { _VNRequest } from "./VNRequest.js";
import type { _NSError } from "../Foundation/NSError.js";
import type { CMTime } from "../structs/CMTime.js";
export declare class _VNStatefulRequest extends _VNImageBasedRequest {
    static alloc(): _VNStatefulRequest;
    static new(): _VNStatefulRequest;
    init(): _VNStatefulRequest;
    /**
     * @brief Create a new video-based stateful request. @param frameAnalysisSpacing The reciprocal of maximum rate at which buffers will be processed. The request will not process buffers that fall within the frameAnalysisSpacing after it has performed the analysis. The analysis is not done by wall time but by analysis of of the time stamps of the samplebuffers being processed. @param completionHandler The block to be invoked after the request has completed its processing. The completion handler gets executed on the same dispatch queue as the request being executed.
     */
    initWithFrameAnalysisSpacing$completionHandler$(frameAnalysisSpacing: CMTime, completionHandler: ((arg0: _VNRequest, arg1: _NSError) => void) | null): _VNStatefulRequest;
    /**
     * @brief The minimum number of frames that the request has to process on before reporting back any observation. This information is provided by the request once initialized with its required paramters. @discussion Video based request often need a minimum number of frames before they can report back any observation. An example would be that a movement detection requires at least 5 frames to be detected. The minimumLatencyFrameCount for that request would report 5 and only after 5 frames have been processed an observation would be returned in the results. This latency is indicative of how responsive a request is in respect to the incoming data.
     */
    minimumLatencyFrameCount(): number;
    /**
     * @brief The reciprocal of maximum rate at which buffers will be processed. @discussion The request will not process buffers that fall within the `frameAnalysisSpacing` after it has performed the analysis. The analysis is not done by wall time but by analysis of of the time stamps of the samplebuffers being processed.
     */
    frameAnalysisSpacing(): CMTime;
}
