import type { TurboModule } from 'react-native'; import { TurboModuleRegistry } from 'react-native'; import type { EventEmitter } from 'react-native/Libraries/Types/CodegenTypes'; // Since we have a discrepancy between Android and iOS log level values, // we define all possible TBLLogLevel numeric options here (0-6) and handle // the platform-specific mapping in the JavaScript layer export type TBLRNTLogLevel = 0 | 1 | 2 | 3 | 4 | 5 | 6; export type TBLRNTPlacementType = 0 | 1 | 2; export type TBLRNTFetchingPolicy = 0 | 1; export type OnResizeArgs = { unitId: string; height: number; }; export type OnItemClickArgs = { placement: string; itemId: string; clickUrl: string; isOrganic: boolean; customData?: string; unitId: string; }; export type OnTaboolaWidgetOnTopArgs = { unitId: string; }; export type OnAdReceiveSuccessArgs = { unitId: string; }; export type OnAdReceiveFailArgs = { unitId: string; error: string; }; export type OnUpdateContentCompletedArgs = { unitId: string; }; export type OnEventArgs = { unitId: string; actionType: number; data: string; }; export interface Spec extends TurboModule { //Taboola init(publisherName: string): void; setGlobalExtraProperties(extraProperties: Object): void; setLogLevel(level: TBLRNTLogLevel): void; getClassicPage(pageUrl: string, pageType: string): string; removePage(pageId: string): void; setPageExtraProperties(pageId: string, extraProperties: Object): void; //TBLClassicPage build( pageId: string, placement: string, mode: string, placementType: TBLRNTPlacementType ): Promise; resetPage(pageId: string): void; refreshPage(pageId: string): void; getPageViewId(pageId: string): string | undefined; setPageUserId(pageId: string, userId: string): void; setSerialFetchTimeout(pageId: string, timeoutMillis: number): void; setPageUrl(pageId: string, pageUrl: string): void; setPageTargetType(pageId: string, targetType: string): void; setPageType(pageId: string, pageType: string): void; setAutoResizeHeight(pageId: string, autoResizeHeight: boolean): void; setPageTag(pageId: string, tag: string): void; setPagePublisher(pageId: string, publisher: string): void; setPageId(currentPageId: string, updatedPageId: string): void; setFetchingPolicy(pageId: string, fetchingPolicy: TBLRNTFetchingPolicy): void; clearAllFetchRequests(pageId: string): void; fetchAllUnitsContent(pageId: string): void; /// TBLClassicUnit fetchContent(pageId: string, unitId: string): void; resetUnit(pageId: string, unitId: string): void; setUnitUserId(pageId: string, unitId: string, userId: string): void; setTag(pageId: string, unitId: string, tag: string): void; setPageIdFromUnit(pageId: string, unitId: string, newPageId: string): void; setUnitTargetType(pageId: string, unitId: string, targetType: string): void; setPublisherName(pageId: string, unitId: string, publisherName: string): void; setUnitPageType(pageId: string, unitId: string, pageType: string): void; setUnitPageUrl(pageId: string, unitId: string, pageUrl: string): void; setUnitExtraProperties( pageId: string, unitId: string, extraProperties: Object ): void; refreshUnit(pageId: string, unitId: string): void; updateContent(pageId: string, unitId: string): void; clearUnit(pageId: string, unitId: string): void; //TemplateJS disableTRCCache(pageId: string, unitId: string): void; requestCampaigns(pageId: string, unitId: string, campaigns: number[]): void; requestGeo(pageId: string, unitId: string, geo: string): void; addCustomQueryParams( pageId: string, unitId: string, queryKey: string, queryValue: string ): void; setSpecificTRCServer( pageId: string, unitId: string, trcServerName: string ): void; setVideoCampaignFormat( pageId: string, unitId: string, videoCampaign: string ): void; setTrcDebugMode( pageId: string, unitId: string, shouldEnableTrcDebugMode: boolean ): void; setShouldHandleOrganicClicks( pageId: string, unitId: string, shouldHandleOrganicClicks: boolean ): void; readonly onResize: EventEmitter; readonly onItemClick: EventEmitter; readonly onTaboolaWidgetOnTop: EventEmitter; readonly onAdReceiveSuccess: EventEmitter; readonly onAdReceiveFail: EventEmitter; readonly onUpdateContentCompleted: EventEmitter; readonly onEvent: EventEmitter; } export default TurboModuleRegistry.getEnforcing('TBLRNTTurboModule');