import type { NobjcObject } from "objc-js";
import type { _NSArray } from "../Foundation/NSArray.js";
import type { _NSDate } from "../Foundation/NSDate.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _AVPlayerItemSegment } from "./AVPlayerItemSegment.js";
import type { CMTime } from "../structs/CMTime.js";
export declare class _AVPlayerItemIntegratedTimelineSnapshot extends _NSObject {
    static alloc(): _AVPlayerItemIntegratedTimelineSnapshot;
    static new(): _AVPlayerItemIntegratedTimelineSnapshot;
    init(): _AVPlayerItemIntegratedTimelineSnapshot;
    /**
     * @method mapTime @abstract Provides mapping from time to AVPlayerItemSegment and offset in segment. @param time Time represented in the integrated time domain. @param timeSegmentOut Output parameter for segment. @param segmentOffsetOut Output parameter for offset in segment. @discussion Provides mapping from time to segment and offset in the segment's timeMapping target. For time that correlates to the start of multiple segments, this will return the first one.
     */
    mapTime$toSegment$atSegmentOffset$(time: CMTime, timeSegmentOut: NobjcObject | null, segmentOffsetOut: NobjcObject): void;
    /**
     * @property duration @abstract Returns the duration totaling the primary item and scheduled interstitial events. @discussion This property returns the duration totaling the primary item and scheduled interstitial events and taking into account the interstitial event's playoutLimit and resumption offset. Before loading the duration of the primary item, the value of this property is kCMTimeInvalid. For livestreams, this value will be kCMTimeIndefinite.
     */
    duration(): CMTime;
    /**
     * @property currentSegment @abstract Returns the current AVPlayerItemSegment playback is traversing.
     */
    currentSegment(): _AVPlayerItemSegment | null;
    /**
     * @property segments @abstract Returns an array of AVPlayerItemSegment for the snapshot. @discussion Returns an array of AVPlayerItemSegment. The segments are presented in chronological order, contiguous from the previous element, and non-overlapping.
     */
    segments(): _NSArray;
    /**
     * @property currentTime @abstract Returns the current time on the integrated timeline when the snapshot was taken. @discussion Returns the current time on the integrated timeline when the snapshot was taken. CurrentTime will not change as playback progresses.
     */
    currentTime(): CMTime;
    /**
     * @property currentDate @abstract Returns the current date when the snapshot was taken, or nil if playback is not mapped to any date.
     */
    currentDate(): _NSDate | null;
}
