import type { NobjcObject } from "objc-js";
import type { _NSArray } from "../Foundation/NSArray.js";
import type { _NSDictionary } from "../Foundation/NSDictionary.js";
import type { _NSIndexSet } from "../Foundation/NSIndexSet.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { VTOpticalFlowConfigurationQualityPrioritization } from "./VTOpticalFlowConfigurationQualityPrioritization.js";
import type { VTOpticalFlowConfigurationRevision } from "./VTOpticalFlowConfigurationRevision.js";
export declare class _VTOpticalFlowConfiguration extends _NSObject {
    static alloc(): _VTOpticalFlowConfiguration;
    static new(): _VTOpticalFlowConfiguration;
    init(): _VTOpticalFlowConfiguration;
    /**
     * Provides the collection of currently supported algorithms or configuration revisions for the class of configuration. A property you use to introspect at runtime which revisions are available for each configuration.
     */
    static supportedRevisions(): _NSIndexSet;
    /** Provides the default revision of a specific algorithm or configuration. */
    static defaultRevision(): VTOpticalFlowConfigurationRevision;
    /**
     * Reports whether the system supports this processor.
     * @deprecated isSupported
     */
    static supported(): boolean;
    /** @deprecated isSupported */
    static processorSupported(): NobjcObject;
    /**
     * Creates a new optical flow configuration. Returns ``nil`` if dimensions are out of range or revision is unsupported. - Parameters: - frameWidth: Width of source frame in pixels; the maximum value is 8192 for macOS, and 4096 for iOS. - frameHeight: Height of source frame in pixels; the maximum value is 4320 for macOS, and 2160 for iOS. - qualityPrioritization: A level you use to prioritize quality or performance; for more information about supported levels, see ``VTOpticalFlowConfigurationQualityPrioritization``. - revision: The specific algorithm or configuration revision you use to perform the request.
     */
    initWithFrameWidth$frameHeight$qualityPrioritization$revision$(frameWidth: number, frameHeight: number, qualityPrioritization: VTOpticalFlowConfigurationQualityPrioritization, revision: VTOpticalFlowConfigurationRevision): _VTOpticalFlowConfiguration | null;
    /** Width of source frame in pixels. */
    frameWidth(): number;
    /** Height of source frame in pixels. */
    frameHeight(): number;
    /**
     * A parameter you use to control quality and performance levels. For more information about supported levels, see ``VTOpticalFlowConfigurationQualityPrioritization``.
     */
    qualityPrioritization(): VTOpticalFlowConfigurationQualityPrioritization;
    /**
     * The specific algorithm or configuration revision you use to perform the request.
     */
    revision(): VTOpticalFlowConfigurationRevision;
    /** Supported pixel formats for source frames for current configuration. */
    frameSupportedPixelFormats(): _NSArray;
    /**
     * Pixel buffer attributes dictionary that describes requirements for pixel buffers which represent source frames and reference frames. Use ``CVPixelBufferCreateResolvedAttributesDictionary`` to combine this dictionary with your pixel buffer attributes dictionary.
     */
    sourcePixelBufferAttributes(): _NSDictionary;
    /**
     * Pixel buffer attributes dictionary that describes requirements for pixel buffers which represent destination frames. Use ``CVPixelBufferCreateResolvedAttributesDictionary`` to combine this dictionary with your pixel buffer attributes dictionary.
     * @deprecated isSupported
     */
    destinationPixelBufferAttributes(): _NSDictionary;
}
