import type { _AVPlayerView } from "./AVPlayerView.js";
import type { _NSError } from "../Foundation/NSError.js";
export interface _AVPlayerViewPictureInPictureDelegate {
    /**
     * @method playerViewWillStartPictureInPicture: @param playerView The player view. @abstract Delegate can implement this method to be notified when Picture in Picture will start.
     */
    playerViewWillStartPictureInPicture$?(playerView: _AVPlayerView): void;
    /**
     * @method playerViewDidStartPictureInPicture: @param playerView The player view. @abstract Delegate can implement this method to be notified when Picture in Picture did start.
     */
    playerViewDidStartPictureInPicture$?(playerView: _AVPlayerView): void;
    /**
     * @method playerView:failedToStartPictureInPictureWithError: @param playerView The player view. @param error An error describing why it failed. @abstract Delegate can implement this method to be notified when Picture in Picture failed to start.
     */
    playerView$failedToStartPictureInPictureWithError$?(playerView: _AVPlayerView, error: _NSError): void;
    /**
     * @method playerViewWillStopPictureInPicture: @param playerView The player view. @abstract Delegate can implement this method to be notified when Picture in Picture will stop.
     */
    playerViewWillStopPictureInPicture$?(playerView: _AVPlayerView): void;
    /**
     * @method playerViewDidStopPictureInPicture: @param playerView The player view. @abstract Delegate can implement this method to be notified when Picture in Picture did stop.
     */
    playerViewDidStopPictureInPicture$?(playerView: _AVPlayerView): void;
    /**
     * @method playerView:restoreUserInterfaceForPictureInPictureStopWithCompletionHandler: @param playerView The player view. @param completionHandler The completion handler the delegate needs to call after restore. @abstract Delegate can implement this method to restore the user interface before Picture in Picture stops.
     */
    playerView$restoreUserInterfaceForPictureInPictureStopWithCompletionHandler$?(playerView: _AVPlayerView, completionHandler: (restored: boolean) => void): void;
    /**
     * @method playerViewShouldAutomaticallyDismissAtPictureInPictureStart: @param playerView The player view. @abstract Delegate can implement this method and return NO to prevent player view from automatically being miniaturized or losing focus when Picture in Picture starts.
     */
    playerViewShouldAutomaticallyDismissAtPictureInPictureStart$?(playerView: _AVPlayerView): boolean;
}
