text: //
  //  BUNativeExpressFullscreenVideoAd.h
  //  BUAdSDK
  //
  //  Copyright © 2019 bytedance. All rights reserved.
  //
  
  #import <UIKit/UIKit.h>
  @class BUNativeExpressFullscreenVideoAd;
  
  NS_ASSUME_NONNULL_BEGIN
  @protocol BUNativeExpressFullscreenVideoAdDelegate <NSObject>
  
  @optional
  /**
   This method is called when video ad material loaded successfully.
   */
  - (void)nativeExpressFullscreenVideoAdDidLoad:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd;
  
  /**
   This method is called when video ad materia failed to load.
   @param error : the reason of error
   */
  - (void)nativeExpressFullscreenVideoAd:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd didFailWithError:(NSError *_Nullable)error;
  
  /**
   This method is called when rendering a nativeExpressAdView successed.
   */
  - (void)nativeExpressFullscreenVideoAdViewRenderSuccess:(BUNativeExpressFullscreenVideoAd *)rewardedVideoAd;
  
  /**
   This method is called when a nativeExpressAdView failed to render.
   @param error : the reason of error
   */
  - (void)nativeExpressFullscreenVideoAdViewRenderFail:(BUNativeExpressFullscreenVideoAd *)rewardedVideoAd error:(NSError *_Nullable)error;
  
  /**
   This method is called when video cached successfully.
   */
  - (void)nativeExpressFullscreenVideoAdDidDownLoadVideo:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd;
  
  /**
   This method is called when video ad slot will be showing.
   */
  - (void)nativeExpressFullscreenVideoAdWillVisible:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd;
  
  /**
   This method is called when video ad slot has been shown.
   */
  - (void)nativeExpressFullscreenVideoAdDidVisible:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd;
  
  /**
   This method is called when video ad is clicked.
   */
  - (void)nativeExpressFullscreenVideoAdDidClick:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd;
  
  /**
   This method is called when the user clicked skip button.
   */
  - (void)nativeExpressFullscreenVideoAdDidClickSkip:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd;
  
  /**
   This method is called when video ad is about to close.
   */
  - (void)nativeExpressFullscreenVideoAdWillClose:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd;
  
  /**
   This method is called when video ad is closed.
   */
  - (void)nativeExpressFullscreenVideoAdDidClose:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd;
  
  /**
   This method is called when video ad play completed or an error occurred.
   @param error : the reason of error
   */
  - (void)nativeExpressFullscreenVideoAdDidPlayFinish:(BUNativeExpressFullscreenVideoAd *)fullscreenVideoAd didFailWithError:(NSError *_Nullable)error;
  
  @end
  
  
  @interface BUNativeExpressFullscreenVideoAd : NSObject
  
  @property (nonatomic, weak, nullable) id<BUNativeExpressFullscreenVideoAdDelegate> delegate;
  @property (nonatomic, getter=isAdValid, readonly) BOOL adValid;
  
  /**
   Initializes video ad with slot id.
   @param slotID : the unique identifier of video ad.
   @return BUFullscreenVideoAd
   */
  - (instancetype)initWithSlotID:(NSString *)slotID;
  
  /**
   Load video ad datas.
   */
  - (void)loadAdData;
  
  /**
   Display video ad.
   @param rootViewController : root view controller for displaying ad.
   @return : whether it is successfully displayed.
   */
  - (BOOL)showAdFromRootViewController:(UIViewController *)rootViewController;
  
  /**
   Display video ad.
   @param rootViewController : root view controller for displaying ad.
   @param sceneDescirbe : optional. Identifies a custom description of the presentation scenario.
   @return : whether it is successfully displayed.
   */
  - (BOOL)showAdFromRootViewController:(UIViewController *)rootViewController ritSceneDescribe:(NSString *_Nullable)sceneDescirbe;
  
  @end
  
  NS_ASSUME_NONNULL_END
  