import type { TurboModule } from 'react-native'; import { TurboModuleRegistry } from 'react-native'; import type { EventEmitter } from 'react-native/Libraries/Types/CodegenTypes'; export type Category = { name: string; externalId: string }; export type ItemInfo = { contentId?: string; categories: ReadonlyArray }; export type StoriesAdRequest = { placement: string; categories: ReadonlyArray; story: ItemInfo; adIndex: number; }; export type ClipsAdRequest = { collection: string; clip: ItemInfo; nextClip?: ItemInfo; adIndex: number; }; export type AdRequestPayload = { stories?: StoriesAdRequest; clips?: ClipsAdRequest; }; export interface Spec extends TurboModule { disableGoogleAdsModule(): void; setupGAMModule(configuration: { customNativeTemplateId?: { stories?: string; clips?: string }; customKvps?: { [key: string]: string }; bottomBannerAdUnit?: string; }): void; setupAdMobModule(configuration: { nativeAdUnit: string; bannerAdUnit?: string; bottomBannerAdUnit?: string; customKvps?: { [key: string]: string }; enableBannerAdPriority?: boolean; }): void; setAdUnitResult(configuration: { requestId: string; adUnitId: string }): void; readonly getAdUnitForRequest: EventEmitter<{ requestId: string; adRequest: AdRequestPayload; }>; } export default TurboModuleRegistry.getEnforcing('StorytellerSdkGam');