import type { _NSArray } from "../Foundation/NSArray.js";
import type { _NSCopying } from "../Foundation/NSCopying.js";
import type { _NSDate } from "../Foundation/NSDate.js";
import type { _NSDictionary } from "../Foundation/NSDictionary.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { _AVPlayerItem } from "./AVPlayerItem.js";
import type { CMTime } from "../structs/CMTime.js";
import type { CMTimeRange } from "../structs/CMTimeRange.js";
import type { AVPlayerInterstitialEventCue } from "./AVPlayerInterstitialEventCue.js";
import type { AVPlayerInterstitialEventRestrictions } from "./AVPlayerInterstitialEventRestrictions.js";
import type { AVPlayerInterstitialEventTimelineOccupancy } from "./AVPlayerInterstitialEventTimelineOccupancy.js";
export declare class _AVPlayerInterstitialEvent extends _NSObject {
    static alloc(): _AVPlayerInterstitialEvent;
    static new(): _AVPlayerInterstitialEvent;
    init(): _AVPlayerInterstitialEvent;
    /**
     * Returns an instance of AVPlayerInterstitialEvent for use in scheduling interstitial playback. - Parameter primaryItem: An AVPlayerItem representing the primary content during the playback of which the interstitial event should occur. The primaryItem must have an AVAsset that provides an intrinsic mapping from its timeline to real-time dates. - Parameter identifier: An external identifier for the event. - Parameter time: The time within the duration of the primary item at which playback of the primary content should be temporarily suspended and the interstitial items played. - Parameter templateItems: An array of AVPlayerItems with configurations that will be reproduced for the playback of interstitial content. An NSInvalidArgumentException will be raised if any of the template items employs an AVAsset that lacks a URL, such as an AVComposition. - Parameter restrictions: Indicates restrictions on the use of end user playback controls that are imposed by the event. - Parameter resumptionOffset: Specifies the offset in time at which playback of the primary item should resume after interstitial playback has finished. Definite numeric values are supported. The value kCMTimeIndefinite can also be used, in order to specify that the effective resumption time offset should accord with the wallclock time elapsed during interstitial playback. - Parameter playoutLimit: Specifies the offset from the beginning of the interstitial at which interstitial playback should end, if the interstitial asset(s) are longer. Pass a positive numeric value, or kCMTimeInvalid to indicate no playout limit. - Parameter userDefinedAttributes: Storage for attributes defined by the client or the content vendor. Attribute names should begin with X- for uniformity with server insertion. - Returns: An instance of AVPlayerInterstitialEvent.
     * @deprecated Use interstitialEventWithPrimaryItem:time: instead
     */
    static interstitialEventWithPrimaryItem$identifier$time$templateItems$restrictions$resumptionOffset$playoutLimit$userDefinedAttributes$(primaryItem: _AVPlayerItem, identifier: _NSString | null, time: CMTime, templateItems: _NSArray, restrictions: AVPlayerInterstitialEventRestrictions, resumptionOffset: CMTime, playoutLimit: CMTime, userDefinedAttributes: _NSDictionary | null): _AVPlayerInterstitialEvent;
    /**
     * Returns an instance of AVPlayerInterstitialEvent for use in scheduling interstitial playback. - Parameter primaryItem: An AVPlayerItem representing the primary content during the playback of which the interstitial event should occur. The primaryItem must have an AVAsset that provides an intrinsic mapping from its timeline to real-time dates. - Parameter identifier: An external identifier for the event. - Parameter date: The date within the date range of the primary item at which playback of the primary content should be temporarily suspended and the interstitial items played. - Parameter templateItems: An array of AVPlayerItems with configurations that will be reproduced for the playback of interstitial content. An NSInvalidArgumentException will be raised if any of the template items employs an AVAsset that lacks a URL, such as an AVComposition. - Parameter restrictions: Indicates restrictions on the use of end user playback controls that are imposed by the event. - Parameter resumptionOffset: Specifies the offset in time at which playback of the primary item should resume after interstitial playback has finished. Definite numeric values are supported. The value kCMTimeIndefinite can also be used, in order to specify that the effective resumption time offset should accord with the wallclock time elapsed during interstitial playback. - Parameter playoutLimit: Specifies the offset from the beginning of the interstitial at which interstitial playback should end, if the interstitial asset(s) are longer. Pass a positive numeric value, or kCMTimeInvalid to indicate no playout limit. - Parameter userDefinedAttributes: Storage for attributes defined by the client or the content vendor. Attribute names should begin with X- for uniformity with server insertion. - Returns: An instance of AVPlayerInterstitialEvent.
     * @deprecated Use interstitialEventWithPrimaryItem:date: instead
     */
    static interstitialEventWithPrimaryItem$identifier$date$templateItems$restrictions$resumptionOffset$playoutLimit$userDefinedAttributes$(primaryItem: _AVPlayerItem, identifier: _NSString | null, date: _NSDate, templateItems: _NSArray, restrictions: AVPlayerInterstitialEventRestrictions, resumptionOffset: CMTime, playoutLimit: CMTime, userDefinedAttributes: _NSDictionary | null): _AVPlayerInterstitialEvent;
    /**
     * Returns an instance of AVPlayerInterstitialEvent for use in scheduling interstitial playback. - Parameter primaryItem: An AVPlayerItem representing the primary content during the playback of which the interstitial event should occur. The primaryItem must have an AVAsset that provides an intrinsic mapping from its timeline to real-time dates. - Parameter time: The time within the duration of the primary item at which playback of the primary content should be temporarily suspended and the interstitial items played. - Returns: An instance of AVPlayerInterstitialEvent.
     */
    static interstitialEventWithPrimaryItem$time$(primaryItem: _AVPlayerItem, time: CMTime): _AVPlayerInterstitialEvent;
    /**
     * Returns an instance of AVPlayerInterstitialEvent for use in scheduling interstitial playback. - Parameter primaryItem: An AVPlayerItem representing the primary content during the playback of which the interstitial event should occur. The primaryItem must have an AVAsset that provides an intrinsic mapping from its timeline to real-time dates. - Parameter date: The date within the date range of the primary item at which playback of the primary content should be temporarily suspended and the interstitial items played. - Returns: An instance of AVPlayerInterstitialEvent.
     */
    static interstitialEventWithPrimaryItem$date$(primaryItem: _AVPlayerItem, date: _NSDate): _AVPlayerInterstitialEvent;
    /**
     * An AVPlayerItem representing the primary content during the playback of which the interstitial event should occur. The primaryItem must have an AVAsset that provides an intrinsic mapping from its timeline to real-time dates.
     */
    primaryItem(): _AVPlayerItem | null;
    /**
     * An external identifier for the event. If an event is set on an AVPlayerInterstitialEventController that already has an event with the same identifier, the old event will be replaced by the new one.
     */
    identifier(): _NSString;
    /**
     * The time within the duration of the primary item at which playback of the primary content should be temporarily suspended and the interstitial items played. Will have a value equal to kCMTimeInvalid if the event was initialized with a date instead of a time.
     */
    time(): CMTime;
    /**
     * The date within the date range of the primary item at which playback of the primary content should be temporarily suspended and the interstitial items played. Will have a value of nil if the event was initialized with a time instead of a date.
     */
    date(): _NSDate | null;
    /**
     * An array of AVPlayerItems with configurations that will be reproduced for the playback of interstitial content. If you want the instances of AVURLAsset used during interstitial playback to be identical to the ones you specify for templateItems in AVPlayerInterstitialEvents that you set on an AVPlayerInterstitialEventController, rather than equivalent AVURLAssets with the same URL, you must create them with a value for the key AVURLAssetPrimarySessionIdentifierKey that's equal to the httpSessionIdentifier of the primary AVPlayerItem's asset. See AVAsset.h. This is especially useful if you require the use of a custom AVAssetResourceLoader delegate for interstitial assets. An NSInvalidArgumentException will be raised if any of the template items employs an AVAsset that lacks a URL, such as an AVComposition.
     */
    templateItems(): _NSArray;
    /**
     * Indicates restrictions on the use of end user playback controls that are imposed by the event.
     */
    restrictions(): AVPlayerInterstitialEventRestrictions;
    /**
     * Specifies the offset in time at which playback of the primary item should resume after interstitial playback has finished. Definite numeric values are supported. The value kCMTimeIndefinite can also be used, in order to specify that the effective resumption time offset should accord with the wallclock time elapsed during interstitial playback; this value is typically suitable for live broadcasts. The default value is kCMTimeZero.
     */
    resumptionOffset(): CMTime;
    /**
     * Specifies the offset in time at which playback of the interstitial event should end. Can be any positive numeric value, or invalid. The default value is kCMTimeInvalid, which means there is no limit.
     */
    playoutLimit(): CMTime;
    /**
     * Specifies that the start time of interstitial playback should be snapped to a segment boundary of the primary asset If true, the start time or date of the interstitial will be adjusted to the nearest segment boundary when the primary player is playing an HTTP Live Streaming asset.
     */
    alignsStartWithPrimarySegmentBoundary(): boolean;
    /**
     * Specifies that the resumption time of primary playback should be snapped to a segment boundary of the primary asset If true, the resumption time of primary playback following an interstitial will be adjusted to the nearest segment boundary when the primary player is playing an HTTP Live Streaming asset.
     */
    alignsResumptionWithPrimarySegmentBoundary(): boolean;
    /**
     * The cue property is used to schedule event playback at a predefined position of primary playback.
     */
    cue(): AVPlayerInterstitialEventCue;
    /**
     * Specifies that the interstitial should be scheduled for playback once only, and suppressed for subsequent replay. The "once" provision takes effect at the start of interstitial playback. The interstitial will not be scheduled again even if the first playback is canceled before completion.
     */
    willPlayOnce(): boolean;
    /**
     * Attributes of the event defined by the content vendor or the client. Dictionary keys are attribute names. Dictionary values are attribute values.
     */
    userDefinedAttributes(): _NSDictionary;
    /**
     * The asset list JSON response as a dictionary, or nil if no asset list response has been loaded for the event. If the AVPlayerInterstitialEvent's templateItems is empty and the assetListResponse is nil, then an asset list read is expected. If the AVPlayerInterstitialEvent's templateItems is not empty and the assetListResponse is nil, then an asset list read is not expected.
     */
    assetListResponse(): _NSDictionary | null;
    /**
     * Indicates this event's occupancy on AVPlayerItemIntegratedTimeline. The default value is AVPlayerInterstitialEventTimelineSinglePointOccupancy.
     */
    timelineOccupancy(): AVPlayerInterstitialEventTimelineOccupancy;
    /**
     * Indicates this event will supplement the primary content and should be presented unified with the primary item. The default value is NO.
     */
    supplementsPrimaryContent(): boolean;
    /**
     * Indicates this event's content is dynamic and server may respond with different interstitial assets for other particpants in coordinated playback. Indicates this event's content is dynamic and server may respond with different interstitial assets for other particpants in coordinated playback. If this value is set to NO and the primary asset is particpating in coordinated playback, this event will participate in coordinated playback as well. The default value is YES.
     */
    contentMayVary(): boolean;
    /**
     * The time range within the duration of the interstitial event for which a skip button should be displayed. The start of the time range should indicate at which point the skip button should appear. The duration of the time range should indicate how long the skip button should be available. If this value is set to kCMTimePositiveInfinity, then the skip button will be available for the remainder of the interstitial's duration after appearing. If either the start or duration of the time range is kCMTimeInvalid, then the interstitial will NOT be eligible to be skipped.
     */
    skipControlTimeRange(): CMTimeRange;
    /**
     * The key defined in the AVPlayerInterstitialEventController's localizedStringsBundle that points to the localized label for the skip button. If the value of the property is nil, the skip button may contain a generic label depending on the implementation of the UI that's in use. To ensure the best available user experience in various playback configurations, including external playback, set a value for this property that provides localized translations of skip control labels.
     */
    skipControlLocalizedLabelBundleKey(): _NSString | null;
    /** Indicates the event's planned duration. The default value is kCMTimeInvalid. */
    plannedDuration(): CMTime;
    setPlannedDuration$(value: CMTime): void;
}
export interface _AVPlayerInterstitialEvent extends _NSCopying {
}
