type PropertiesObject = Record < string , any > ; type RevenueProperties = { price : number ; productId ? : string ; quantity ? : number ; revenueType ? : string ; receipt ? : string ; receiptSignature ? : string ; eventProperties ? : PropertiesObject ; } ; export interface AmplitudeReactNativeModule { initialize ( instanceName , apiKey ) : Promise < boolean > ; logEvent ( instanceName , eventType ) : Promise < boolean > ; logEventWithProperties ( instanceName , eventType , eventProperties ) : Promise < boolean > ; enableCoppaControl ( instanceName ) : Promise < boolean > ; disableCoppaControl ( instanceName ) : Promise < boolean > ; regenerateDeviceId ( instanceName ) : Promise < boolean > ; setDeviceId ( instanceName , deviceId ) : Promise < boolean > ; getDeviceId ( instanceName ) : Promise < string > ; setAdvertisingIdForDeviceId ( instanceName ) : Promise < boolean > ; setAppSetIdForDeviceId ( instanceName ) : Promise < boolean > ; setOptOut ( instanceName , optOut ) : Promise < boolean > ; setLibraryName ( instanceName , libraryName ) : Promise < boolean > ; setLibraryVersion ( instanceName , libraryVersion ) : Promise < boolean > ; trackingSessionEvents ( instanceName , trackingSessionEvents ) : Promise < boolean > ; setUseDynamicConfig ( instanceName , useDynamicConfig ) : Promise < boolean > ; setUserId ( instanceName , userId ) : Promise < boolean > ; setServerUrl ( instanceName , serverUrl ) : Promise < boolean > ; logRevenueV2 ( instanceName , userProperties ) : Promise < boolean > ; identify ( instanceName , identifyPayload ) : Promise < boolean > ; setGroup ( instanceName , groupType , groupName ) : Promise < boolean > ; groupIdentify ( instanceName , groupType , groupName , identifyPayload ) : Promise < boolean > ; setUserProperties ( instanceName , userProperties ) : Promise < boolean > ; clearUserProperties ( instanceName ) : Promise < boolean > ; uploadEvents ( instanceName ) : Promise < boolean > ; getSessionId ( instanceName ) : Promise < number > ; setMinTimeBetweenSessionsMillis ( instanceName , minTimeBetweenSessionsMillis ) : Promise < boolean > ; setServerZone ( instanceName , serverZone , updateServerUrl ) : Promise < boolean > ; setEventUploadMaxBatchSize ( instanceName , eventUploadMaxBatchSize ) : Promise < boolean > ; setEventUploadPeriodMillis ( instanceName , eventUploadPeriodMillis ) : Promise < boolean > ; setEventUploadThreshold ( instanceName , eventUploadThreshold ) : Promise < boolean > ; }