import type { CompletionState } from './CompletionState';

export interface AdStateListener {
  onAdImpression: () => void;
  onAdClicked: () => void;
  onAdFailed: (error: string) => void;
}

export interface RewardedAdStateListener extends ClosableAdStateListener {
  onRewarded: () => void;
}

export interface InterstitialAdStateListener extends ClosableAdStateListener {}

export interface BannerAdStateListener extends AdStateListener {}

export interface NativeAdStateListener extends AdStateListener {}

export interface ClosableAdStateListener extends AdStateListener {
  onAdClosed: (completionState: CompletionState) => void;
}
