import type { _NSCopying } from "../Foundation/NSCopying.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _MTL4FXFrameInterpolator } from "./MTL4FXFrameInterpolator.js";
import type { _MTLFXFrameInterpolatableScaler } from "./MTLFXFrameInterpolatableScaler.js";
import type { _MTLFXFrameInterpolator } from "./MTLFXFrameInterpolator.js";
import type { _MTL4Compiler } from "../Metal/MTL4Compiler.js";
import type { _MTLDevice } from "../Metal/MTLDevice.js";
import type { MTLPixelFormat } from "../Metal/MTLPixelFormat.js";
export declare class _MTLFXFrameInterpolatorDescriptor extends _NSObject {
    static alloc(): _MTLFXFrameInterpolatorDescriptor;
    static new(): _MTLFXFrameInterpolatorDescriptor;
    init(): _MTLFXFrameInterpolatorDescriptor;
    /**
     * Queries whether a Metal device supports frame interpolation compatible with a Metal 4 command buffer. - Parameters: - device: The GPU device for which this methods tests support. - Returns: <doc://com.apple.documentation/documentation/swift/true> if the device supports frame interpolation for Metal 4, <doc://com.apple.documentation/documentation/swift/false> otherwise.
     */
    static supportsMetal4FX$(device: _MTLDevice): boolean;
    /**
     * Queries whether a Metal device supports frame interpolation. - Parameters: - device: The GPU device for which this methods tests support. - Returns: <doc://com.apple.documentation/documentation/swift/true> if the device supports frame interpolation, <doc://com.apple.documentation/documentation/swift/false> otherwise.
     */
    static supportsDevice$(device: _MTLDevice): boolean;
    /**
     * Creates a frame interpolator instance for a Metal device. - Parameters: - device: The Metal device that creates the frame interpolator. - Returns: A new frame interpolator instance upon success, or `nil` otherwise.
     */
    newFrameInterpolatorWithDevice$(device: _MTLDevice): _MTLFXFrameInterpolator | null;
    /**
     * Creates a frame interpolator instance for a Metal device. - Parameters: - device: The Metal device that creates the frame interpolator. - compiler: A compiler instance this method can use to build pipeline state objects. - Returns: A new frame interpolator instance upon success, or `nil` otherwise.
     */
    newFrameInterpolatorWithDevice$compiler$(device: _MTLDevice, compiler: _MTL4Compiler): _MTL4FXFrameInterpolator | null;
    /**
     * The pixel format of the input color texture for the frame interpolator you create with this descriptor.
     */
    colorTextureFormat(): MTLPixelFormat;
    setColorTextureFormat$(value: MTLPixelFormat): void;
    /**
     * The pixel format of the output color texture for the frame interpolator you create with this descriptor.
     */
    outputTextureFormat(): MTLPixelFormat;
    setOutputTextureFormat$(value: MTLPixelFormat): void;
    /**
     * The pixel format of the input depth texture for the frame interpolator you create with this descriptor.
     */
    depthTextureFormat(): MTLPixelFormat;
    setDepthTextureFormat$(value: MTLPixelFormat): void;
    /**
     * The pixel format of the input motion texture for the frame interpolator you create with this descriptor.
     */
    motionTextureFormat(): MTLPixelFormat;
    setMotionTextureFormat$(value: MTLPixelFormat): void;
    /**
     * The pixel format for the frame interpolator of an input texture containing your game's custom UI.
     */
    uiTextureFormat(): MTLPixelFormat;
    setUiTextureFormat$(value: MTLPixelFormat): void;
    scaler(): _MTLFXFrameInterpolatableScaler | null;
    setScaler$(value: _MTLFXFrameInterpolatableScaler | null): void;
    /**
     * The width, in pixels, of the input motion and depth texture for the frame interpolator.
     */
    inputWidth(): number;
    setInputWidth$(value: number): void;
    /**
     * The height, in pixels, of the input motion and depth texture for the frame interpolator.
     */
    inputHeight(): number;
    setInputHeight$(value: number): void;
    /** The width, in pixels, of the output color texture for the frame interpolator. */
    outputWidth(): number;
    setOutputWidth$(value: number): void;
    /** The height, in pixels, of the output color texture for the frame interpolator. */
    outputHeight(): number;
    setOutputHeight$(value: number): void;
}
export interface _MTLFXFrameInterpolatorDescriptor extends _NSCopying {
}
