import type { NobjcObject } from "objc-js";
import type { _NSArray } from "../Foundation/NSArray.js";
import type { _NSCopying } from "../Foundation/NSCopying.js";
import type { _NSMutableCopying } from "../Foundation/NSMutableCopying.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _NSSecureCoding } from "../Foundation/NSSecureCoding.js";
import type { CMTimeRange } from "../structs/CMTimeRange.js";
export declare class _AVVideoCompositionInstruction extends _NSObject {
    static alloc(): _AVVideoCompositionInstruction;
    static new(): _AVVideoCompositionInstruction;
    init(): _AVVideoCompositionInstruction;
    /** Pass-through initializer, for internal use in AVFoundation only */
    static videoCompositionInstructionWithInstruction$(instruction: _AVVideoCompositionInstruction): _AVVideoCompositionInstruction;
    /**
     * Indicates the timeRange during which the instruction is effective. Note requirements for the timeRanges of instructions described in connection with AVVideoComposition's instructions key above.
     */
    timeRange(): CMTimeRange;
    /**
     * If NO, indicates that post-processing should be skipped for the duration of this instruction. See +[AVVideoCompositionCoreAnimationTool videoCompositionToolWithPostProcessingAsVideoLayer:inLayer:].
     */
    enablePostProcessing(): boolean;
    /**
     * If YES, rendering a frame from the same source buffers and the same composition instruction at 2 different compositionTime may yield different output frames. If NO, 2 such compositions would yield the same frame. The media pipeline may be able to avoid some duplicate processing when containsTweening is NO
     */
    containsTweening(): boolean;
    /**
     * List of video track IDs required to compose frames for this instruction. If the value of this property is nil, all source tracks will be considered required for composition
     */
    requiredSourceTrackIDs(): _NSArray | null;
    /** kCMPersistentTrackID_Invalid if not a passthrough instruction */
    passthroughTrackID(): number;
    /**
     * List of sample data track IDs required to compose frames for this instruction. An empty array indicates that no sample data is required for this instruction.
     */
    requiredSourceSampleDataTrackIDs(): _NSArray;
    /**
     * Indicates the background color of the composition. Solid BGRA colors only are supported; patterns and other color refs that are not supported will be ignored. - If the background color is not specified the video compositor will use a default backgroundColor of opaque black. - If the rendered pixel buffer does not have alpha, the alpha value of the backgroundColor will be ignored.
     */
    backgroundColor(): NobjcObject;
    /**
     * Provides an array of instances of AVVideoCompositionLayerInstruction that specify how video frames from source tracks should be layered and composed. Tracks are layered in the composition according to the top-to-bottom order of the layerInstructions array; the track with trackID of the first instruction in the array will be layered on top, with the track with the trackID of the second instruction immediately underneath, etc. If this key is nil, the output will be a fill of the background color.
     */
    layerInstructions(): _NSArray;
}
export interface _AVVideoCompositionInstruction extends _NSSecureCoding, _NSCopying, _NSMutableCopying {
}
