import type { NobjcObject } from "objc-js";
import type { _NSArray } from "../Foundation/NSArray.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _MTLCommandBuffer } from "../Metal/MTLCommandBuffer.js";
import type { _MTLCommandQueue } from "../Metal/MTLCommandQueue.js";
import type { _MTLTexture } from "../Metal/MTLTexture.js";
import type { _CNRenderingSessionAttributes } from "./CNRenderingSessionAttributes.js";
import type { _CNRenderingSessionFrameAttributes } from "./CNRenderingSessionFrameAttributes.js";
import type { CGAffineTransform } from "../structs/CGAffineTransform.js";
import type { CNRenderingQuality } from "./CNRenderingQuality.js";
export declare class _CNRenderingSession extends _NSObject {
    static alloc(): _CNRenderingSession;
    static new(): _CNRenderingSession;
    init(): _CNRenderingSession;
    /**
     * The pixel format types supported for the input source. Use with kCVPixelBufferPixelFormatTypeKey in the video compositor's sourcePixelBufferAttributes dictionary when implementing AVVideoCompositing.
     */
    static sourcePixelFormatTypes(): _NSArray;
    /**
     * The pixel format types supported for the output destination. Use with kCVPixelBufferPixelFormatTypeKey in the video compositor's requiredPixelBufferAttributesForRenderContext dictionary when implementing AVVideoCompositing.
     */
    static destinationPixelFormatTypes(): _NSArray;
    initWithCommandQueue$sessionAttributes$preferredTransform$quality$(commandQueue: _MTLCommandQueue, sessionAttributes: _CNRenderingSessionAttributes, preferredTransform: CGAffineTransform, quality: CNRenderingQuality): _CNRenderingSession;
    /**
     * Encode a command to render a shallow depth of field (SDoF) image to a pixel buffer. - Parameters: - commandBuffer: the metal command buffer on which to encode the command - frameAttributes: controls the focus distance and aperture of the rendering - sourceImage: a pixel buffer read from the cinematicVideoTrack - sourceDisparity: a pixel buffer read from the cinematicDisparityTrack - destinationImage: the pixel buffer to which the SDoF image is rendered - Returns: whether encoding the render command was successful
     */
    encodeRenderToCommandBuffer$frameAttributes$sourceImage$sourceDisparity$destinationImage$(commandBuffer: _MTLCommandBuffer, frameAttributes: _CNRenderingSessionFrameAttributes, sourceImage: NobjcObject, sourceDisparity: NobjcObject, destinationImage: NobjcObject): boolean;
    /**
     * Encode a command to render a shallow depth of field (SDoF) image to a metal texture as RGBA. - Parameters: - commandBuffer: the metal command buffer on which to encode the command - frameAttributes: controls the focus distance and aperture of the rendering - sourceImage: a pixel buffer read from the cinematicVideoTrack - sourceDisparity: a pixel buffer read from the cinematicDisparityTrack - destinationRGBA: a metal texture to which the SDoF image is rendered in RGBA format - Returns: whether encoding the render command was successful
     */
    encodeRenderToCommandBuffer$frameAttributes$sourceImage$sourceDisparity$destinationRGBA$(commandBuffer: _MTLCommandBuffer, frameAttributes: _CNRenderingSessionFrameAttributes, sourceImage: NobjcObject, sourceDisparity: NobjcObject, destinationRGBA: _MTLTexture): boolean;
    /**
     * Encode a command to render a shallow depth of field (SDoF) image to two metal textures as luma and chroma. - Parameters: - commandBuffer: the metal command buffer on which to encode the command - frameAttributes: controls the focus distance and aperture of the rendering - sourceImage: a pixel buffer read from the cinematicVideoTrack - sourceDisparity: a pixel buffer read from the cinematicDisparityTrack - destinationLuma: a metal texture to which the luma of the SDoF image is rendered - destinationChroma: a metal texture to which the chroma of the SDoF image is rendered - Returns: whether encoding the render command was successful
     */
    encodeRenderToCommandBuffer$frameAttributes$sourceImage$sourceDisparity$destinationLuma$destinationChroma$(commandBuffer: _MTLCommandBuffer, frameAttributes: _CNRenderingSessionFrameAttributes, sourceImage: NobjcObject, sourceDisparity: NobjcObject, destinationLuma: _MTLTexture, destinationChroma: _MTLTexture): boolean;
    commandQueue(): _MTLCommandQueue;
    sessionAttributes(): _CNRenderingSessionAttributes;
    preferredTransform(): CGAffineTransform;
    quality(): CNRenderingQuality;
}
