import type { _AVAssetTrackSegment } from "./AVAssetTrackSegment.js";
import type { _NSURL } from "../Foundation/NSURL.js";
import type { CMTimeRange } from "../structs/CMTimeRange.js";
export declare class _AVCompositionTrackSegment extends _AVAssetTrackSegment {
    static alloc(): _AVCompositionTrackSegment;
    static new(): _AVCompositionTrackSegment;
    init(): _AVCompositionTrackSegment;
    /**
     * @method compositionTrackSegmentWithURL:trackID:sourceTimeRange:targetTimeRange: @abstract Returns an instance of AVCompositionTrackSegment that presents a portion of a file referenced by URL. @param URL An instance of NSURL that references the container file to be presented by the AVCompositionTrackSegment. @param trackID The track identifier that specifies the track of the container file to be presented by the AVCompositionTrackSegment. @param sourceTimeRange The timeRange of the track of the container file to be presented by the AVCompositionTrackSegment. @param targetTimeRange The timeRange of the composition track during which the AVCompositionTrackSegment is to be presented. @result An instance of AVCompositionTrackSegment. @discussion To specify that the segment be played at the asset's normal rate, set source.duration == target.duration in the timeMapping. Otherwise, the segment will be played at a rate equal to the ratio source.duration / target.duration.
     */
    static compositionTrackSegmentWithURL$trackID$sourceTimeRange$targetTimeRange$(URL: _NSURL, trackID: number, sourceTimeRange: CMTimeRange, targetTimeRange: CMTimeRange): _AVCompositionTrackSegment;
    /**
     * @method compositionTrackSegmentWithTimeRange: @abstract Returns an instance of AVCompositionTrackSegment that presents an empty track segment. @param timeRange The timeRange of the empty AVCompositionTrackSegment. @result An instance of AVCompositionTrackSegment.
     */
    static compositionTrackSegmentWithTimeRange$(timeRange: CMTimeRange): _AVCompositionTrackSegment;
    /**
     * @method initWithURL:trackID:sourceTimeRange:targetTimeRange: @abstract Initializes an instance of AVCompositionTrackSegment that presents a portion of a file referenced by URL. @param URL An instance of NSURL that references the container file to be presented by the AVCompositionTrackSegment. @param trackID The track identifier that specifies the track of the container file to be presented by the AVCompositionTrackSegment. @param sourceTimeRange The timeRange of the track of the container file to be presented by the AVCompositionTrackSegment. @param targetTimeRange The timeRange of the composition track during which the AVCompositionTrackSegment is to be presented. @result An instance of AVCompositionTrackSegment. @discussion To specify that the segment be played at the asset's normal rate, set source.duration == target.duration in the timeMapping. Otherwise, the segment will be played at a rate equal to the ratio source.duration / target.duration.
     */
    initWithURL$trackID$sourceTimeRange$targetTimeRange$(URL: _NSURL, trackID: number, sourceTimeRange: CMTimeRange, targetTimeRange: CMTimeRange): _AVCompositionTrackSegment;
    /**
     * @method initWithTimeRange: @abstract Initializes an instance of AVCompositionTrackSegment that presents an empty track segment. @param timeRange The timeRange of the empty AVCompositionTrackSegment. @result An instance of AVCompositionTrackSegment.
     */
    initWithTimeRange$(timeRange: CMTimeRange): _AVCompositionTrackSegment;
    /**
     * indicates whether the AVCompositionTrackSegment is an empty segment; an empty segment has a valid target time range but nil sourceURL and kCMTimeInvalid source start time; all other fields are undefined
     */
    empty(): boolean;
    /**
     * indicates the container file of the media presented by the AVCompositionTrackSegment
     */
    sourceURL(): _NSURL | null;
    /**
     * indicates the track of the container file of the media presented by the AVCompositionTrackSegment
     */
    sourceTrackID(): number;
}
