export interface LoadFullScreenAdOptions { adGroupId: string; } export interface LoadFullScreenAdEvent { type: 'loaded'; } export interface LoadFullScreenAdParams { options: LoadFullScreenAdOptions; onEvent: (data: LoadFullScreenAdEvent) => void; onError: (err: unknown) => void; } export interface ShowFullScreenAdOptions { adGroupId: string; } type AdMobFullScreenEvent = AdClicked | AdDismissed | AdFailedToShow | AdImpression | AdShow; type AdClicked = { type: 'clicked' }; type AdDismissed = { type: 'dismissed' }; type AdFailedToShow = { type: 'failedToShow' }; type AdImpression = { type: 'impression' }; type AdShow = { type: 'show' }; type AdUserEarnedReward = { type: 'userEarnedReward'; data: { unitType: string; unitAmount: number } }; export type ShowFullScreenAdEvent = AdMobFullScreenEvent | AdUserEarnedReward | { type: 'requested' }; export interface ShowFullScreenAdParams { options: ShowFullScreenAdOptions; onEvent: (data: ShowFullScreenAdEvent) => void; onError: (err: unknown) => void; }