UNPKG

@namiml/web-sdk

Version:

Nami Web SDK makes subscriptions & in-app purchases easy, with powerful built-in paywalls and A/B testing

108 lines (107 loc) 3.08 kB
import { NamiPurchase } from "./purchase"; import { NamiSKU } from "./sku"; export { PaywallManagerEvents as NamiPaywallManagerEvents } from '../paywall'; /** * @enum NamiPaywallAction * Types of actions paywall will have */ 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" } /** * @type NamiPaywallEvent * Represents the events(actions) triggered by rendered paywall */ export type NamiPaywallEvent = { /** * Any action from [NamiPaywallAction] */ action: NamiPaywallAction; sku?: NamiSKU; campaignId?: string; campaignName?: string; campaignType?: string; campaignLabel?: string; campaignUrl?: string; paywallId?: string; paywallName?: string; componentChange?: NamiPaywallComponentChange; /** * segment from [NamiCampaign] */ segmentId?: string; /** * external_segment from [NamiCampaign] */ externalSegmentId: string | null; deeplinkUrl?: string; purchaseError?: string; purchases?: NamiPurchase[]; /** * Total time user has spent on paywall page, * From rendering paywall to clicking on close button of paywall */ timeSpentOnPaywall?: number; videoMetaData?: NamiPaywallEventVideoMetadata; purchaseChannel?: string; }; export type NamiPaywallActionHandler = (event: NamiPaywallEvent) => void; /** * @type NamiPaywallLaunchContext * Will be used to pass custom context while launching paywall */ export type NamiPaywallLaunchContext = { productGroups?: string[]; customAttributes: { [key: string]: string; }; customObject?: { [key: string]: any; }; }; /** * @type NamiPaywallComponentChange */ export type NamiPaywallComponentChange = { id?: string; name?: string; }; /** * @type NamiPaywallEventVideoMetadata */ export type NamiPaywallEventVideoMetadata = { id?: string; name?: string; url?: string; loopVideo: boolean; muteByDefault: boolean; autoplayVideo: boolean; contentTimecode?: number; contentDuration?: number; };