import type { _AVAssetReaderOutput } from "./AVAssetReaderOutput.js";
import type { _AVVideoCompositing } from "./AVVideoCompositing.js";
import type { _AVVideoComposition } from "./AVVideoComposition.js";
import type { _NSArray } from "../Foundation/NSArray.js";
import type { _NSDictionary } from "../Foundation/NSDictionary.js";
export declare class _AVAssetReaderVideoCompositionOutput extends _AVAssetReaderOutput {
    static alloc(): _AVAssetReaderVideoCompositionOutput;
    static new(): _AVAssetReaderVideoCompositionOutput;
    init(): _AVAssetReaderVideoCompositionOutput;
    /**
     * @method assetReaderVideoCompositionOutputWithVideoTracks:videoSettings: @abstract Creates an instance of AVAssetReaderVideoCompositionOutput for reading composited video from the specified video tracks and supplying media data according to the specified video settings. @param tracks An NSArray of AVAssetTrack objects from which the resulting AVAssetReaderVideoCompositionOutput should read video frames for compositing. @param videoSettings An NSDictionary of video settings to be used for video output. See AVVideoSettings.h for more information about how to construct a video settings dictionary. @result An instance of AVAssetReaderVideoCompositionOutput. @discussion Each track must be one of the tracks owned by the target AVAssetReader's asset and must be of media type AVMediaTypeVideo. A value of nil for videoSettings configures the output to return samples in a convenient uncompressed format, with properties determined according to the properties of the specified video tracks. Initialization will fail if the video settings cannot be used with the specified tracks. AVAssetReaderVideoCompositionOutput can only produce uncompressed output. This means that the video settings dictionary must follow the rules for uncompressed video output, as laid out in AVVideoSettings.h. In addition, the following keys are not supported: AVVideoCleanApertureKey AVVideoPixelAspectRatioKey AVVideoScalingModeKey
     */
    static assetReaderVideoCompositionOutputWithVideoTracks$videoSettings$(videoTracks: _NSArray, videoSettings: _NSDictionary | null): _AVAssetReaderVideoCompositionOutput;
    /**
     * @method initWithVideoTracks:videoSettings: @abstract Creates an instance of AVAssetReaderVideoCompositionOutput for reading composited video from the specified video tracks and supplying media data according to the specified video settings. @param tracks An NSArray of AVAssetTrack objects from which the resulting AVAssetReaderVideoCompositionOutput should read video frames for compositing. @param videoSettings An NSDictionary of video settings to be used for video output. See AVVideoSettings.h for more information about how to construct a video settings dictionary. @result An instance of AVAssetReaderVideoCompositionOutput. @discussion Each track must be one of the tracks owned by the target AVAssetReader's asset and must be of media type AVMediaTypeVideo. A value of nil for videoSettings configures the output to return samples in a convenient uncompressed format, with properties determined according to the properties of the specified video tracks. Initialization will fail if the video settings cannot be used with the specified tracks. AVAssetReaderVideoCompositionOutput can only produce uncompressed output. This means that the video settings dictionary must follow the rules for uncompressed video output, as laid out in AVVideoSettings.h. This method throws an exception for any of the following reasons: - any video track is not of media type AVMediaTypeVideo - any video track is not part of this asset reader output's AVAsset - track output settings would cause the output to yield compressed samples - video settings does not follow the rules for uncompressed video output (AVVideoSettings.h) - video settings contains any of the following keys: - AVVideoCleanApertureKey - AVVideoPixelAspectRatioKey - AVVideoScalingModeKey - AVVideoDecompressionPropertiesKey
     */
    initWithVideoTracks$videoSettings$(videoTracks: _NSArray, videoSettings: _NSDictionary | null): _AVAssetReaderVideoCompositionOutput;
    /**
     * @property videoTracks @abstract The tracks from which the receiver reads composited video. @discussion The value of this property is an NSArray of AVAssetTracks owned by the target AVAssetReader's asset.
     */
    videoTracks(): _NSArray;
    /**
     * @property videoSettings @abstract The video settings used by the receiver. @discussion The value of this property is an NSDictionary that contains values for keys as specified by AVVideoSettings.h. A value of nil indicates that the receiver will return video frames in a convenient uncompressed format, with properties determined according to the properties of the receiver's video tracks.
     */
    videoSettings(): _NSDictionary | null;
    /**
     * @property videoComposition @abstract The composition of video used by the receiver. @discussion The value of this property is an AVVideoComposition that can be used to specify the visual arrangement of video frames read from each source track over the timeline of the source asset. This property throws an exception if a value is set after reading has started.
     */
    videoComposition(): _AVVideoComposition | null;
    setVideoComposition$(value: _AVVideoComposition | null): void;
    /**
     * @property customVideoCompositor @abstract Indicates the custom video compositor instance used by the receiver. @discussion This property is nil if there is no video compositor, or if the internal video compositor is in use.
     */
    customVideoCompositor(): _AVVideoCompositing;
}
