import type { PluginListenerHandle } from '@capacitor/core'; import type { ValidateAllEventsEnumAreImplemented } from '../private/validate-all-events-implemented.type'; import type { AdLoadInfo, AdMobError } from '../shared'; import type { RewardInterstitialAdOptions } from './reward-interstitial-ad-options.interface'; import type { RewardInterstitialAdPluginEvents } from './reward-interstitial-ad-plugin-events.enum'; import type { AdMobRewardInterstitialItem } from './reward-interstitial-item.interface'; export type RewardInterstitialDefinitionsHasAllEvents = ValidateAllEventsEnumAreImplemented; export interface RewardInterstitialDefinitions { /** * Prepare a reward video ad * * @group RewardVideo * @param options RewardAdOptions * @since 1.1.2 */ prepareRewardInterstitialAd(options: RewardInterstitialAdOptions): Promise; /** * Show a reward video ad * * @group RewardVideo * @since 1.1.2 */ showRewardInterstitialAd(): Promise; addListener(eventName: RewardInterstitialAdPluginEvents.FailedToLoad, listenerFunc: (error: AdMobError) => void): Promise; addListener(eventName: RewardInterstitialAdPluginEvents.Loaded, listenerFunc: (info: AdLoadInfo) => void): Promise; addListener(eventName: RewardInterstitialAdPluginEvents.Rewarded, listenerFunc: (reward: AdMobRewardInterstitialItem) => void): Promise; addListener(eventName: RewardInterstitialAdPluginEvents.Dismissed, listenerFunc: () => void): Promise; addListener(eventName: RewardInterstitialAdPluginEvents.FailedToShow, listenerFunc: (error: AdMobError) => void): Promise; addListener(eventName: RewardInterstitialAdPluginEvents.Showed, listenerFunc: () => void): Promise; }