import type { _NSObject } from "../Foundation/NSObject.js";
import type { _VTFrameProcessorFrame } from "./VTFrameProcessorFrame.js";
import type { _VTFrameProcessorOpticalFlow } from "./VTFrameProcessorOpticalFlow.js";
import type { VTSuperResolutionScalerParametersSubmissionMode } from "./VTSuperResolutionScalerParametersSubmissionMode.js";
export declare class _VTSuperResolutionScalerParameters extends _NSObject {
    static alloc(): _VTSuperResolutionScalerParameters;
    static new(): _VTSuperResolutionScalerParameters;
    init(): _VTSuperResolutionScalerParameters;
    /**
     * Creates a new super-resolution scaler parameters instance. Returns `nil` if `sourceFrame` or `destinationFrame` is `nil`, or if `sourceFrame` and reference frames have different pixel formats. - Parameters: - sourceFrame: Current source frame; must be non `nil`. - previousFrame: The previous source frame in presentation time order. For the first frame you can set this to `nil`. - previousOutputFrame: The previous output frame in presentation time order. For the first frame you can set this to `nil`. - opticalFlow: Optional `VTFrameProcessorOpticalFlow` object that contains forward and backward optical flow between the `sourceFrame` and `previousFrame`. You only need this if optical flow is pre-computed. - submissionMode: Provides a hint to let the processor know whether you are submitting frames in presentation sequence. For more information about supported modes see ``VTSuperResolutionScalerParametersSubmissionMode``. - destinationFrame: User-allocated pixel buffer that receives the results.
     */
    initWithSourceFrame$previousFrame$previousOutputFrame$opticalFlow$submissionMode$destinationFrame$(sourceFrame: _VTFrameProcessorFrame, previousFrame: _VTFrameProcessorFrame | null, previousOutputFrame: _VTFrameProcessorFrame | null, opticalFlow: _VTFrameProcessorOpticalFlow | null, submissionMode: VTSuperResolutionScalerParametersSubmissionMode, destinationFrame: _VTFrameProcessorFrame): _VTSuperResolutionScalerParameters | null;
    /** Current source frame, which must be non `nil`. */
    sourceFrame(): _VTFrameProcessorFrame;
    /**
     * Previous source frame in presentation time order, which is `nil` for the first frame.
     */
    previousFrame(): _VTFrameProcessorFrame | null;
    /**
     * Previous output frame in presentation time order, which is `nil` for the first frame.
     */
    previousOutputFrame(): _VTFrameProcessorFrame | null;
    /**
     * Optional object that contains forward and backward optical flow with the previous frame. You only need this if optical flow is pre-computed. For the first frame this is `nil`.
     */
    opticalFlow(): _VTFrameProcessorOpticalFlow | null;
    /**
     * Ordering of the input frames in this submission relative to the previous submission.
     */
    submissionMode(): VTSuperResolutionScalerParametersSubmissionMode;
    /**
     * Destination frame that contains user-allocated pixel buffer that receives the results.
     */
    destinationFrame(): _VTFrameProcessorFrame;
}
