//
//  BSUBanner.h
//  UnityFramework
//
//  Created by Moin Hasan on 5/23/25.
//

#import <Foundation/Foundation.h>
#import <CoreGraphics/CoreGraphics.h>
#import "BSUTypes.h"

@interface BSUBanner : NSObject

- (id)initWithBannerClientReference:(BSUTypeBannerClientRef *)bannerClient
                        placementId:(NSString *)placementId
                        adPosition:(BSUAdPosition)adPosition;

@property(nonatomic, assign) BSUTypeBannerClientRef *bannerClient;

@property(nonatomic, assign) BSUOnBannerDidLoadCallback onBannerDidLoadCallback;
@property(nonatomic, assign) BSUOnBannerDidFailedCallback onBannerDidFailedCallback;
@property(nonatomic, assign) BSUOnAdClickedCallback onAdClickedCallback;
@property(nonatomic, assign) BSUOnBannerDidRefreshCallback onBannerDidRefreshCallback;
@property(nonatomic, assign) BSUOnBannerDidFailToRefreshCallback onBannerDidFailToRefreshCallback;
@property(nonatomic, assign) BSUOnBannerHideCallback onBannerHideCallback;
@property(nonatomic, assign) BSUOnBannerDisplayCallback onBannerDisplayCallback;

- (void)loadAdWithAdSize:(NSString *)adSize;
- (void)loadAdWithAdSize:(NSString *)adSize requestOptions:(BSUTypeRequestOptionsRef)requestOptionsRef;
- (void)show;
- (void)hide;
- (void)setPosition:(BSUAdPosition)adPosition;
- (void)destroy;

@end
