UNPKG

react-native-nami-sdk

Version:

React Native SDK for Nami - No-code paywall management with A/B testing.

242 lines (241 loc) 7.75 kB
export type NamiConfiguration = { appPlatformID: string; logLevel: string; namiCommands?: string[]; namiLanguageCode?: NamiLanguageCodes; initialConfig?: string; }; export type NamiLanguageCodes = 'af' | 'ar' | 'ar-dz' | 'ast' | 'az' | 'bg' | 'be' | 'bn' | 'br' | 'bs' | 'ca' | 'cs' | 'cy' | 'da' | 'de' | 'dsb' | 'el' | 'en' | 'en-au' | 'en-gb' | 'eo' | 'es' | 'es-ar' | 'es-co' | 'es-mx' | 'es-ni' | 'es-ve' | 'et' | 'eu' | 'fa' | 'fi' | 'fr' | 'fy' | 'ga' | 'gd' | 'gl' | 'he' | 'hi' | 'hr' | 'hsb' | 'hu' | 'hy' | 'ia' | 'id' | 'ig' | 'io' | 'is' | 'it' | 'ja' | 'ka' | 'kab' | 'kk' | 'km' | 'kn' | 'ko' | 'ky' | 'lb' | 'lt' | 'lv' | 'mk' | 'ml' | 'mn' | 'mr' | 'my' | 'nb' | 'ne' | 'nl' | 'nn' | 'os' | 'pa' | 'pl' | 'pt' | 'pt-br' | 'ro' | 'ru' | 'sk' | 'sl' | 'sq' | 'sr' | 'sr-latn' | 'sv' | 'sw' | 'ta' | 'te' | 'tg' | 'th' | 'tk' | 'tr' | 'tt' | 'udm' | 'uk' | 'ur' | 'uz' | 'vi' | 'zh-hans' | 'zh-hant'; export type NamiSKU = { id: string; name?: string; skuId: string; appleProduct?: AppleProduct; googleProduct?: GoogleProduct; amazonProduct?: AmazonProduct; type: NamiSKUType; promoId?: string | null; promoToken?: string | null; promoOffer?: { [key: string]: string; } | null; }; export declare enum NamiPurchaseState { PENDING = "pending", PURCHASED = "purchased", CONSUMED = "consumed", RESUBSCRIBED = "resubscribed", UNSUBSCRIBED = "unsubscribed", DEFERRED = "deferred", FAILED = "failed", CANCELLED = "cancelled", UNKNOWN = "unknown" } export declare enum NamiRestorePurchasesState { STARTED = "started", FINISHED = "finished", ERROR = "error" } export type NamiSKUType = 'unknown' | 'one_time_purchase' | 'subscription'; export type AppleProduct = { localizedDescription: string; localizedMultipliedPrice: string; localizedPrice: string; localizedTitle: string; price: string; priceCurrency: string; priceLanguage: string; }; export type GoogleProduct = Record<string, never>; export type AmazonProduct = Record<string, never>; export type NamiCampaign = { name: string; rule: string; segment: string; paywall: string; type: NamiCampaignRuleType; value?: string | null; form_factors: NamiFormFactor[]; external_segment: string | null; }; export declare enum NamiCampaignRuleType { DEFAULT = "default", LABEL = "label", UNKNOWN = "unknown", URL = "url" } type NamiFormFactor = { form_factor?: string; supports_portrait?: boolean; supports_landscape?: boolean; }; export declare enum LaunchCampaignError { DEFAULT_CAMPAIGN_NOT_FOUND = 0, LABELED_CAMPAIGN_NOT_FOUND = 1, CAMPAIGN_DATA_NOT_FOUND = 2, PAYWALL_ALREADY_DISPLAYED = 3, SDK_NOT_INITIALIZED = 4, PAYWALL_COULD_NOT_DISPLAY = 5, URL_CAMPAIGN_NOT_FOUND = 6, PRODUCT_DATA_NOT_FOUND = 7, PRODUCT_GROUPS_NOT_FOUND = 8 } export declare enum LaunchCampaignResultAction { FAILURE = "FAILURE", SUCCESS = "SUCCESS" } export type FailureResultObject = { error: string; }; export type PaywallLaunchContext = { productGroups?: string[]; customAttributes: { [key: string]: string; }; customObject?: { [key: string]: unknown; }; }; export type CustomerJourneyState = { formerSubscriber: boolean; inGracePeriod: boolean; inTrialPeriod: boolean; inIntroOfferPeriod: boolean; isCancelled: boolean; inPause: boolean; inAccountHold: boolean; }; export type AccountStateAction = 'login' | 'logout' | 'advertising_id_set' | 'vendor_id_set' | 'customer_data_platform_id_set' | 'nami_device_id_set' | 'advertising_id_cleared' | 'vendor_id_cleared' | 'customer_data_platform_id_cleared' | 'nami_device_id_cleared' | 'anonymous_mode_on' | 'anonymous_mode_off'; export type NamiEntitlement = { activePurchases: NamiPurchase[]; desc: string; name: string; purchasedSkus: NamiSKU[]; referenceId: string; relatedSkus: NamiSKU[]; }; export type NamiPurchaseDetails = { product: NamiSKU; transactionID?: string; originalTransactionID?: string; orderId?: string; purchaseToken?: string; receiptId?: string; localizedPrice?: string; price?: string; currencyCode?: string; userId?: string; marketplace?: string; storeType?: string; }; export type NamiPurchaseSuccessApple = { product: NamiSKU; transactionID: string; originalTransactionID: string; price: string; currencyCode: string; }; export type NamiPurchaseSuccessGooglePlay = { product: NamiSKU; orderId: string; purchaseToken: string; }; export type NamiPurchaseSuccessAmazon = { product: NamiSKU; receiptId: string; localizedPrice: string; userId: string; marketplace: string; }; export declare enum NamiPaywallAction { BUY_SKU = "BUY_SKU", SELECT_SKU = "SELECT_SKU", RESTORE_PURCHASES = "RESTORE_PURCHASES", SIGN_IN = "SIGN_IN", CLOSE_PAYWALL = "CLOSE_PAYWALL", SHOW_PAYWALL = "SHOW_PAYWALL", PURCHASE_SELECTED_SKU = "PURCHASE_SELECTED_SKU", PURCHASE_SUCCESS = "PURCHASE_SUCCESS", PURCHASE_FAILED = "PURCHASE_FAILED", PURCHASE_CANCELLED = "PURCHASE_CANCELLED", PURCHASE_PENDING = "PURCHASE_PENDING", PURCHASE_UNKNOWN = "PURCHASE_UNKNOWN", PURCHASE_DEFERRED = "PURCHASE_DEFERRED", DEEPLINK = "DEEPLINK", TOGGLE_CHANGE = "TOGGLE_CHANGE", PAGE_CHANGE = "PAGE_CHANGE", SLIDE_CHANGE = "SLIDE_CHANGE", COLLAPSIBLE_DRAWER_OPEN = "COLLAPSIBLE_DRAWER_OPEN", COLLAPSIBLE_DRAWER_CLOSE = "COLLAPSIBLE_DRAWER_CLOSE", VIDEO_STARTED = "VIDEO_STARTED", VIDEO_PAUSED = "VIDEO_PAUSED", VIDEO_RESUMED = "VIDEO_RESUMED", VIDEO_ENDED = "VIDEO_ENDED", VIDEO_CHANGED = "VIDEO_CHANGED", VIDEO_MUTED = "VIDEO_MUTED", VIDEO_UNMUTED = "VIDEO_UNMUTED", UNKNOWN = "UNKNOWN" } export type NamiPurchase = { sku?: NamiSKU; skuId: string; transactionIdentifier?: string; purchaseToken?: string; expires?: Date; purchaseInitiatedTimestamp: Date; purchaseSource?: 'CAMPAIGN' | 'MARKETPLACE' | 'UNKNOWN'; }; export type NamiPurchaseFromBridge = { sku?: NamiSKU; skuId: string; transactionIdentifier?: string; purchaseToken?: string; expires?: number; purchaseInitiatedTimestamp: number; purchaseSource?: 'CAMPAIGN' | 'MARKETPLACE' | 'UNKNOWN'; }; export type NamiPurchasesState = 'pending' | 'purchased' | 'consumed' | 'resubscribed' | 'unsubscribed' | 'deferred' | 'failed' | 'cancelled' | 'unknown'; export type NamiPaywallEvent = { action: NamiPaywallAction; campaignId?: string; campaignName?: string; campaignType?: string; campaignLabel?: string; campaignUrl?: string; paywallId?: string; paywallName?: string; componentChange?: NamiPaywallComponentChange; segmentId?: string; externalSegmentId?: string; deeplinkUrl?: string; sku?: NamiSKU; purchaseError?: string; purchases?: NamiPurchase[]; videoMetadata?: NamiPaywallEventVideoMetadata; timeSpentOnPaywall?: number; }; export type NamiPaywallActionHandler = (event: NamiPaywallEvent) => void; export type NamiPaywallComponentChange = { id?: string; name?: string; }; export type NamiPaywallEventVideoMetadata = { id?: string; name?: string; url?: string; loopVideo: boolean; muteByDefault: boolean; autoplayVideo: boolean; contentTimecode?: number; contentDuration?: number; }; export type NamiFlowHandoffPayload = { handoffTag: string; handoffData?: Record<string, unknown>; }; export type NamiAccountStateEvent = { action: AccountStateAction; success: boolean; error?: number; }; export {};