import type { _AVAsset } from "./AVAsset.js";
import type { _AVVideoComposition } from "./AVVideoComposition.js";
import type { _AVVideoCompositionInstruction } from "./AVVideoCompositionInstruction.js";
import type { _AVVideoCompositionLayerInstruction } from "./AVVideoCompositionLayerInstruction.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { CMTimeRange } from "../structs/CMTimeRange.js";
export interface _AVVideoCompositionValidationHandling {
    /**
     * Invoked by an instance of AVVideoComposition when validating an instance of AVVideoComposition, to report a key that has an invalid value. - Returns: An indication of whether the AVVideoComposition should continue validation in order to report additional problems that may exist.
     */
    videoComposition$shouldContinueValidatingAfterFindingInvalidValueForKey$?(videoComposition: _AVVideoComposition, key: _NSString): boolean;
    /**
     * Invoked by an instance of AVVideoComposition when validating an instance of AVVideoComposition, to report a timeRange that has no corresponding video composition instruction. - Returns: An indication of whether the AVVideoComposition should continue validation in order to report additional problems that may exist.
     */
    videoComposition$shouldContinueValidatingAfterFindingEmptyTimeRange$?(videoComposition: _AVVideoComposition, timeRange: CMTimeRange): boolean;
    /**
     * Invoked by an instance of AVVideoComposition when validating an instance of AVVideoComposition, to report a video composition instruction with a timeRange that's invalid, that overlaps with the timeRange of a prior instruction, or that contains times earlier than the timeRange of a prior instruction. Use CMTIMERANGE_IS_INVALID, defined in CMTimeRange.h, to test whether the timeRange itself is invalid. Refer to headerdoc for AVVideoComposition.instructions for a discussion of how timeRanges for instructions must be formulated. - Returns: An indication of whether the AVVideoComposition should continue validation in order to report additional problems that may exist.
     */
    videoComposition$shouldContinueValidatingAfterFindingInvalidTimeRangeInInstruction$?(videoComposition: _AVVideoComposition, videoCompositionInstruction: _AVVideoCompositionInstruction): boolean;
    /**
     * Invoked by an instance of AVVideoComposition when validating an instance of AVVideoComposition, to report a video composition layer instruction with a trackID that does not correspond either to the trackID used for the composition's animationTool or to a track of the asset specified in -[AVVideoComposition isValidForAsset:timeRange:delegate:]. - Returns: An indication of whether the AVVideoComposition should continue validation in order to report additional problems that may exist.
     */
    videoComposition$shouldContinueValidatingAfterFindingInvalidTrackIDInInstruction$layerInstruction$asset$?(videoComposition: _AVVideoComposition, videoCompositionInstruction: _AVVideoCompositionInstruction, layerInstruction: _AVVideoCompositionLayerInstruction, asset: _AVAsset): boolean;
}
