import type { _AVAssetTrack } from "./AVAssetTrack.js";
import type { _AVCompositionTrackSegment } from "./AVCompositionTrackSegment.js";
import type { _NSArray } from "../Foundation/NSArray.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { CMTime } from "../structs/CMTime.js";
import type { AVMetadataFormat } from "./AVMetadataFormat.js";
import type { AVTrackAssociationType } from "./AVTrackAssociationType.js";
export declare class _AVCompositionTrack extends _AVAssetTrack {
    static alloc(): _AVCompositionTrack;
    static new(): _AVCompositionTrack;
    init(): _AVCompositionTrack;
    /**
     * @method segmentForTrackTime: @abstract Supplies the AVCompositionTrackSegment from the segments array with a target timeRange that either contains the specified track time or is the closest to it among the target timeRanges of the track's segments. @param trackTime The trackTime for which an AVCompositionTrackSegment is requested. @result An AVCompositionTrackSegment. @discussion If the trackTime does not map to a sample presentation time (e.g. it's outside the track's timeRange), the segment closest in time to the specified trackTime is returned.
     */
    segmentForTrackTime$(trackTime: CMTime): _AVCompositionTrackSegment | null;
    hasMediaCharacteristic$(mediaCharacteristic: _NSString): boolean;
    samplePresentationTimeForTrackTime$(trackTime: CMTime): CMTime;
    metadataForFormat$(format: AVMetadataFormat): _NSArray;
    associatedTracksOfType$(trackAssociationType: AVTrackAssociationType): _NSArray;
    /**
     * @property segments @abstract Provides read-only access to the array of track segments, each an instance of AVCompositionTrackSegment. @discussion Note that timeMapping.target.start of the first AVCompositionTrackSegment must be kCMTimeZero, and the timeMapping.target.start of each subsequent AVCompositionTrackSegment must equal CMTimeRangeGetEnd(the previous AVCompositionTrackSegment's timeMapping.target). Use -validateTrackSegments:error: to perform a test to ensure that an array of AVCompositionTrackSegments conforms to this rule.
     */
    segments(): _NSArray;
    /**
     * @property formatDescriptionReplacements @abstract An array of AVCompositionTrackFormatDescriptionReplacement objects indicating original format descriptions and their replacements. @discussion The value of this property is an array of AVCompositionTrackFormatDescriptionReplacement objects, each of which specifies an original format description together with its replacement format description (as specified by a previous call to -replaceFormatDescription:withFormatDescription:). Only format descriptions that are to be replaced will occur as the originalFormatDescription elements in the AVCompositionTrackFormatDescriptionReplacement objects in this array.
     */
    formatDescriptionReplacements(): _NSArray;
}
