import type { TurboModule } from 'react-native'; import { TurboModuleRegistry } from 'react-native'; export interface Spec extends TurboModule { // Configuration configure(options: Object): void; isReady(): Promise; // UI Methods showFirstLayer(options?: Object): Promise; showSecondLayer(options?: Object): Promise; // Session Management restoreUserSession(controllerId: string): Promise; getControllerId(): Promise; clearUserSession(): Promise; // Data Retrieval getConsents(): Promise>; getCMPData(): Promise; getAdditionalConsentModeData(): Promise; getTCFData(): Promise; getUserSessionData(): Promise; getUSPData(): Promise; getGPPData(): Promise; getGPPString(): Promise; getABTestingVariant(): Promise; getDpsMetadata(templateId: string): Promise; // Configuration Setters setCMPId(id: number): void; setABTestingVariant(variant: string): void; setGPPConsent(sectionName: string, fieldName: string, value: Object): void; changeLanguage(language: string): Promise; // Consent Actions acceptAll(consentType: number): Promise>; acceptAllForTCF(fromLayer: number, consentType: number): Promise>; denyAll(consentType: number): Promise>; denyAllForTCF(fromLayer: number, consentType: number, unsavedPurposeLIDecisions: Array, unsavedVendorLIDecisions: Array): Promise>; saveDecisions(decisions: Array, consentType: number): Promise>; saveDecisionsForTCF( tcfDecisions: Object, fromLayer: number, saveDecisions: Array, consentType: number ): Promise>; saveOptOutForCCPA(isOptedOut: boolean, consentType: number): Promise>; // Analytics track(event: number): void; addListener(eventName: string): void; removeListeners(count: number): void; } export default TurboModuleRegistry.get('RNUsercentricsModule');