import type { _NSMenu } from "../AppKit/NSMenu.js";
import type { _NSView } from "../AppKit/NSView.js";
import type { _AVPlaybackSpeed } from "./AVPlaybackSpeed.js";
import type { _AVPlayerViewDelegate } from "./AVPlayerViewDelegate.js";
import type { _AVPlayerViewPictureInPictureDelegate } from "./AVPlayerViewPictureInPictureDelegate.js";
import type { _NSArray } from "../Foundation/NSArray.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { _AVPlayer } from "../AVFoundation/AVPlayer.js";
import type { CGPoint } from "../structs/CGPoint.js";
import type { CGRect } from "../structs/CGRect.js";
import type { AVDisplayDynamicRange } from "./AVDisplayDynamicRange.js";
import type { AVPlayerViewControlsStyle } from "./AVPlayerViewControlsStyle.js";
import type { AVPlayerViewTrimResult } from "./AVPlayerViewTrimResult.js";
import type { AVVideoFrameAnalysisType } from "./AVVideoFrameAnalysisType.js";
import type { AVLayerVideoGravity } from "../AVFoundation/AVLayerVideoGravity.js";
export declare class _AVPlayerView extends _NSView {
    static alloc(): _AVPlayerView;
    static new(): _AVPlayerView;
    init(): _AVPlayerView;
    /**
     * @property selectSpeed @param speed The playback speed to select. @abstract Sets the input AVPlaybackSpeed as the selected speed. @discussion Calls to selectSpeed with AVPlaybackSpeeds not contained within the speeds property array will be ignored.
     */
    selectSpeed$(speed: _AVPlaybackSpeed): void;
    /**
     * @method setMagnification:centeredAtPoint: @abstract Scales the video's view by a specified factor and centers the result on a specified point. @param magnification The factor by which to scale the video's view. @param point The point (in view space) on which to center magnification. @discussion The magnification cannot be smaller than 1.0 or larger 64.0. Nearest neighbor interpolation will be used once the content has been zoomed past a certain factor.
     */
    setMagnification$centeredAtPoint$(magnification: number, point: CGPoint): void;
    /**
     * @method beginTrimmingWithCompletionHandler: @param handler A completion handler that is executed when the user selects either the Trim or Cancel button in the trimming UI. @abstract Sets the controls panel into trimming mode and blocks until the user selects either the Trim or the Cancel button.
     */
    beginTrimmingWithCompletionHandler$(handler: ((result: AVPlayerViewTrimResult) => void) | null): void;
    /**
     * @method flashChapterNumber:chapterTitle: @param chapterNumber The chapter number (required). @param chapterTitle The chapter title (optional). @abstract Display the provided chapter number and title momentarily.
     */
    flashChapterNumber$chapterTitle$(chapterNumber: number, chapterTitle: _NSString | null): void;
    /**
     * @property player @abstract The player from which to source the media content for the view.
     */
    player(): _AVPlayer | null;
    setPlayer$(value: _AVPlayer | null): void;
    /**
     * @property controlsStyle @abstract The style of the playback controls pane currently associated with the view. @discussion After macOS 11, the floating style controls will always be used when presenting in fullscreen and AVPlayerViewControlsStyleNone is not specified.
     */
    controlsStyle(): AVPlayerViewControlsStyle;
    setControlsStyle$(value: AVPlayerViewControlsStyle): void;
    /**
     * @property videoGravity @abstract A string defining how the video is displayed within an AVPlayerLayer bounds rect. @discussion Options are AVLayerVideoGravityResizeAspect, AVLayerVideoGravityResizeAspectFill and AVLayerVideoGravityResize. AVLayerVideoGravityResizeAspect is default.
     */
    videoGravity(): AVLayerVideoGravity;
    setVideoGravity$(value: AVLayerVideoGravity): void;
    /**
     * @property readyForDisplay @abstract Boolean indicating that the first video frame has been made ready for display for the current item of the associated AVPlayer.
     */
    readyForDisplay(): boolean;
    /**
     * @property videoBounds @abstract The current size and position of the video image as displayed within the receiver's view's bounds.
     */
    videoBounds(): CGRect;
    /**
     * @property contentOverlayView @abstract Use the content overlay view to add additional custom views between the video content and the controls.
     */
    contentOverlayView(): _NSView;
    /**
     * @property updatesNowPlayingInfoCenter @abstract Whether or not the now playing info center should be updated. Default is YES.
     */
    updatesNowPlayingInfoCenter(): boolean;
    setUpdatesNowPlayingInfoCenter$(value: boolean): void;
    /** @property delegate @abstract The receiver's delegate. */
    delegate(): _AVPlayerViewDelegate;
    setDelegate$(value: _AVPlayerViewDelegate): void;
    /**
     * @property speeds @abstract A list of user selectable playback speeds to be shown in the playback speed control. @discussion By default this property will be set to the systemDefaultSpeeds class property. Setting this property to nil will hide the playback speed selection UI. To set the currently selected playback speed programmatically, either set the defaultRate on the AVPlayer associated with this view controller or use the selectSpeed method on AVPlayerView.
     */
    speeds(): _NSArray;
    setSpeeds$(value: _NSArray): void;
    /**
     * @property selectedSpeed @abstract The currently selected playback speed. @discussion Changes to the associated AVPlayer's defaultRate will be reflected in this property and vice versa. If the associated AVPlayer's defaultRate is set to a value that does not match a speed in the speeds list property, the selected speed will be nil.
     */
    selectedSpeed(): _AVPlaybackSpeed;
    /**
     * @property allowsVideoFrameAnalysis @abstract When set to YES, the AVPlayerView will try to find objects, text and people while the media is paused. When an object is found, the user will be able to interact with it selecting and right clicking to present a context menu. Default is YES.
     */
    allowsVideoFrameAnalysis(): boolean;
    setAllowsVideoFrameAnalysis$(value: boolean): void;
    /**
     * @property videoFrameAnalysisTypes @abstract The types of items AVPlayerView looks for in a paused video frame.
     */
    videoFrameAnalysisTypes(): AVVideoFrameAnalysisType;
    setVideoFrameAnalysisTypes$(value: AVVideoFrameAnalysisType): void;
    /**
     * @property allowsMagnification @abstract Whether the magnify gesture will change the video's view magnification. @discussion The default value is NO. This property only effects whether the magnify gesture triggers magnification. A client can still programmatically change magnification even when the value of this is NO. This behavior matches the behavior of NSScrollView.
     */
    allowsMagnification(): boolean;
    setAllowsMagnification$(value: boolean): void;
    /**
     * @property magnification @abstract The factor by which the video's view is currently scaled. @discussion The default value is 1.0. The value cannot be smaller than 1.0 or larger 64.0. Nearest neighbor interpolation will be used once the content has been zoomed past a certain factor.
     */
    magnification(): number;
    setMagnification$(value: number): void;
    /**
     * Describes how High Dynamic Range (HDR) video content renders. Defaults to ``AVDisplayDynamicRangeAutomatic``. - Note: This property will only have effect if the video content supports HDR.
     */
    preferredDisplayDynamicRange(): AVDisplayDynamicRange;
    setPreferredDisplayDynamicRange$(value: AVDisplayDynamicRange): void;
    /**
     * @property showsFrameSteppingButtons @abstract Replace scanning controls in the playback UI with frame stepping buttons. Default is NO.
     */
    showsFrameSteppingButtons(): boolean;
    setShowsFrameSteppingButtons$(value: boolean): void;
    /**
     * @property showsSharingServiceButton @abstract Whether or not the controls pane will show a sharing service button when the current player item can be shared. Default is NO.
     */
    showsSharingServiceButton(): boolean;
    setShowsSharingServiceButton$(value: boolean): void;
    /**
     * @property actionPopUpButtonMenu @abstract Clients can set this property in order to show an action pop up button. Default is nil.
     */
    actionPopUpButtonMenu(): _NSMenu | null;
    setActionPopUpButtonMenu$(value: _NSMenu | null): void;
    /**
     * @property showsFullScreenToggleButton @abstract Whether or not the controls pane will show a full screen toggle button. Default is NO.
     */
    showsFullScreenToggleButton(): boolean;
    setShowsFullScreenToggleButton$(value: boolean): void;
    /**
     * @property showsTimecodes @abstract If timecodes are available, allow the AVPlayerView controls to enter timecode mode. Default is NO.
     */
    showsTimecodes(): boolean;
    setShowsTimecodes$(value: boolean): void;
    /**
     * @property canBeginTrimming @abstract Whether or not the current media can be trimmed.
     */
    canBeginTrimming(): boolean;
    /**
     * @property allowsPictureInPicturePlayback @abstract Whether or not the receiver allows Picture in Picture playback. Default is NO.
     */
    allowsPictureInPicturePlayback(): boolean;
    setAllowsPictureInPicturePlayback$(value: boolean): void;
    /**
     * @property pictureInPictureDelegate @abstract A delegate for customizing Picture in Picture playback experience.
     */
    pictureInPictureDelegate(): _AVPlayerViewPictureInPictureDelegate;
    setPictureInPictureDelegate$(value: _AVPlayerViewPictureInPictureDelegate): void;
}
