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