@qonversion/capacitor-plugin
Version:
Qonversion provides full in-app purchases infrastructure, so you do not need to build your own server for receipt validation. Implement in-app subscriptions, validate user receipts, check subscription status, and provide access to your app features and co
390 lines (389 loc) • 14.4 kB
TypeScript
export declare enum LaunchMode {
ANALYTICS = "Analytics",
SUBSCRIPTION_MANAGEMENT = "SubscriptionManagement"
}
export declare enum Environment {
SANDBOX = "Sandbox",
PRODUCTION = "Production"
}
export declare enum ProductType {
TRIAL = "Trial",
INTRO = "Intro",/** Currently works for Android only. iOS support will be added soon. */
SUBSCRIPTION = "Subscription",
IN_APP = "InApp",
UNKNOWN = "Unknown"
}
export declare enum SubscriptionPeriodUnit {
DAY = "Day",
WEEK = "Week",
MONTH = "Month",
YEAR = "Year",
UNKNOWN = "Unknown"
}
/**
* Recurrence mode of the pricing phase.
*/
export declare enum PricingPhaseRecurrenceMode {
/**
* The billing plan payment recurs for infinite billing periods unless canceled.
*/
INFINITE_RECURRING = "InfiniteRecurring",
/**
* The billing plan payment recurs for a fixed number of billing periods
* set in {@link ProductPricingPhase.billingCycleCount}.
*/
FINITE_RECURRING = "FiniteRecurring",
/**
* The billing plan payment is a one-time charge that does not repeat.
*/
NON_RECURRING = "NonRecurring",
/**
* Unknown recurrence mode.
*/
UNKNOWN = "Unknown"
}
/**
* Type of the pricing phase.
*/
export declare enum PricingPhaseType {
/**
* Regular subscription without any discounts like trial or intro offers.
*/
REGULAR = "Regular",
/**
* A free phase.
*/
FREE_TRIAL = "FreeTrial",
/**
* A phase with a discounted payment for a single period.
*/
DISCOUNTED_SINGLE_PAYMENT = "DiscountedSinglePayment",
/**
* A phase with a discounted payment for several periods, described in {@link ProductPricingPhase.billingCycleCount}.
*/
DISCOUNTED_RECURRING_PAYMENT = "DiscountedRecurringPayment",
/**
* Unknown pricing phase type.
*/
UNKNOWN = "Unknown"
}
export declare enum EntitlementRenewState {
NON_RENEWABLE = "non_renewable",
UNKNOWN = "unknown",
WILL_RENEW = "will_renew",
CANCELED = "canceled",
BILLING_ISSUE = "billing_issue"
}
export declare enum EntitlementSource {
UNKNOWN = "Unknown",
APP_STORE = "AppStore",
PLAY_STORE = "PlayStore",
STRIPE = "Stripe",
MANUAL = "Manual"
}
export declare enum TransactionEnvironment {
PRODUCTION = "Production",
SANDBOX = "Sandbox"
}
export declare enum TransactionOwnershipType {
OWNER = "Owner",
FAMILY_SHARING = "FamilySharing"
}
export declare enum EntitlementGrantType {
PURCHASE = "Purchase",
FAMILY_SHARING = "FamilySharing",
OFFER_CODE = "OfferCode",
MANUAL = "Manual"
}
export declare enum TransactionType {
UNKNOWN = "Unknown",
SUBSCRIPTION_STARTED = "SubscriptionStarted",
SUBSCRIPTION_RENEWED = "SubscriptionRenewed",
TRIAL_STARTED = "TrialStarted",
INTRO_STARTED = "IntroStarted",
INTRO_RENEWED = "IntroRenewed",
NON_CONSUMABLE_PURCHASE = "NonConsumablePurchase"
}
export declare enum UserPropertyKey {
EMAIL = "Email",
NAME = "Name",
KOCHAVA_DEVICE_ID = "KochavaDeviceId",
APPS_FLYER_USER_ID = "AppsFlyerUserId",
ADJUST_AD_ID = "AdjustAdId",
CUSTOM_USER_ID = "CustomUserId",
FACEBOOK_ATTRIBUTION = "FacebookAttribution",// Android only
FIREBASE_APP_INSTANCE_ID = "FirebaseAppInstanceId",
APP_SET_ID = "AppSetId",// Android only
ADVERTISING_ID = "AdvertisingId",// iOS only
APP_METRICA_DEVICE_ID = "AppMetricaDeviceId",
APP_METRICA_USER_PROFILE_ID = "AppMetricaUserProfileId",
PUSH_WOOSH_HW_ID = "PushWooshHwId",
PUSH_WOOSH_USER_ID = "PushWooshUserId",
TENJIN_ANALYTICS_INSTALLATION_ID = "TenjinAnalyticsInstallationId",
CUSTOM = "Custom"
}
export declare enum AttributionProvider {
APPSFLYER = "AppsFlyer",
BRANCH = "Branch",
ADJUST = "Adjust",
APPLE_SEARCH_ADS = "AppleSearchAds",// ios only
APPLE_AD_SERVICES = "AppleAdServices"
}
/**
* A policy used for purchase updates on Android, which describes
* how to migrate from purchased plan to a new one.
*
* Used in {@link PurchaseOptions} class for purchase updates.
*/
export declare enum PurchaseUpdatePolicy {
/**
* The new plan takes effect immediately, and the user is charged full price of new plan
* and is given a full billing cycle of subscription, plus remaining prorated time
* from the old plan.
*/
CHARGE_FULL_PRICE = "ChargeFullPrice",
/**
* The new plan takes effect immediately, and the billing cycle remains the same.
*/
CHARGE_PRORATED_PRICE = "ChargeProratedPrice",
/**
* The new plan takes effect immediately, and the remaining time will be prorated
* and credited to the user.
*/
WITH_TIME_PRORATION = "WithTimeProration",
/**
* The new purchase takes effect immediately, the new plan will take effect
* when the old item expires.
*/
DEFERRED = "Deferred",
/**
* The new plan takes effect immediately, and the new price will be charged
* on next recurrence time.
*/
WITHOUT_PRORATION = "WithoutProration",
/**
* Unknown police.
*/
UNKNOWN = "Unknown"
}
export declare enum EntitlementsCacheLifetime {
WEEK = "Week",
TWO_WEEKS = "TwoWeeks",
MONTH = "Month",
TWO_MONTHS = "TwoMonths",
THREE_MONTHS = "ThreeMonths",
SIX_MONTHS = "SixMonths",
YEAR = "Year",
UNLIMITED = "Unlimited"
}
export declare const SKPeriodUnit: {
readonly 0: "DAY";
readonly 1: "WEEK";
readonly 2: "MONTH";
readonly 3: "YEAR";
};
export type SKPeriodUnits = typeof SKPeriodUnit[keyof typeof SKPeriodUnit];
export declare const SKProductDiscountType: {
readonly 0: "INTRODUCTORY";
readonly 1: "SUBSCRIPTION";
};
export type SKProductDiscountTypes = typeof SKProductDiscountType[keyof typeof SKProductDiscountType];
export declare const SKProductDiscountPaymentMode: {
readonly 0: "PAY_AS_YOU_GO";
readonly 1: "PAY_UP_FRONT";
readonly 2: "FREE_TRIAL";
};
export type SKProductDiscountPaymentModes = typeof SKProductDiscountPaymentMode[keyof typeof SKProductDiscountPaymentMode];
export declare const OfferingTag: {
readonly "-1": "UNKNOWN";
readonly "0": "NONE";
readonly "1": "MAIN";
};
export type OfferingTags = typeof OfferingTag[keyof typeof OfferingTag];
export declare enum IntroEligibilityStatus {
UNKNOWN = "unknown",
NON_INTRO_OR_TRIAL_PRODUCT = "non_intro_or_trial_product",
ELIGIBLE = "intro_or_trial_eligible",
INELIGIBLE = "intro_or_trial_ineligible"
}
export declare enum ExperimentGroupType {
UNKNOWN = "unknown",
CONTROL = "control",
TREATMENT = "treatment"
}
export declare enum RemoteConfigurationSourceType {
UNKNOWN = "unknown",
EXPERIMENT_CONTROL_GROUP = "experiment_control_group",
EXPERIMENT_TREATMENT_GROUP = "experiment_treatment_group",
REMOTE_CONFIGURATION = "remote_configuration"
}
export declare enum RemoteConfigurationAssignmentType {
UNKNOWN = "unknown",
AUTO = "auto",
MANUAL = "manual"
}
export declare enum ActionType {
/**
* Unspecified action type
*/
UNKNOWN = "unknown",
/**
* URL action that opens the URL using SafariViewController
*/
URL = "url",
/**
* Deeplink action that opens if Application can open specified deeplink
*/
DEEPLINK = "deeplink",
/**
* Navigation to another No-Codes screen
*/
NAVIGATION = "navigation",
/**
* Purchase the product
*/
PURCHASE = "purchase",
/**
* Restore all purchases
*/
RESTORE = "restore",
/**
* Close current screen
*/
CLOSE = "close",
/**
* Close all No-Code screens
*/
CLOSE_ALL = "closeAll"
}
export declare enum ScreenPresentationStyle {
/**
* on Android - default screen transaction animation will be used.
* on iOS - not a modal presentation. This style pushes a controller to a current navigation stack.
* For iOS NavigationController on the top of the stack is required.
*/
PUSH = "Push",
/**
* on Android - screen will move from bottom to top.
* on iOS - UIModalPresentationFullScreen analog.
*/
FULL_SCREEN = "FullScreen",
/**
* iOS only - UIModalPresentationPopover analog
*/
POPOVER = "Popover",
/**
* Android only - screen will appear/disappear without any animation.
* For iOS consider providing the {@link ScreenPresentationConfig.animated} flag.
*/
NO_ANIMATION = "NoAnimation"
}
export declare enum NoCodesErrorCode {
UNKNOWN = "Unknown",
BAD_NETWORK_REQUEST = "BadNetworkRequest",
BAD_RESPONSE = "BadResponse",
ACTIVITY_START = "ActivityStart",// Android
NETWORK_REQUEST_EXECUTION = "NetworkRequestExecution",// Android
SERIALIZATION = "Serialization",// Android
DESERIALIZATION = "Deserialization",// Android
REQUEST_DENIED = "RequestDenied",// Android
MAPPING = "Mapping",// Android
BACKEND_ERROR = "BackendError",// Android
SCREEN_NOT_FOUND = "ScreenNotFound",// Android
QONVERSION_ERROR = "QonversionError",
INTERNAL = "Internal",// iOS
AUTHORIZATION_FAILED = "AuthorizationFailed",// iOS
CRITICAL = "Critical",// iOS
PRODUCT_NOT_FOUND = "ProductNotFound",// iOS
PRODUCTS_LOADING_FAILED = "ProductsLoadingFailed",// iOS
RATE_LIMIT_EXCEEDED = "RateLimitExceeded",// iOS
SCREEN_LOADING_FAILED = "ScreenLoadingFailed",// iOS
SDK_INITIALIZATION_ERROR = "SDKInitializationError"
}
export declare enum PurchaseResultStatus {
/**
* The purchase was successful.
*/
SUCCESS = "Success",
/**
* The purchase was canceled by the user.
*/
USER_CANCELED = "UserCanceled",
/**
* The purchase is pending (e.g., waiting for parental approval).
*/
PENDING = "Pending",
/**
* An error occurred during the purchase.
*/
ERROR = "Error"
}
export declare enum PurchaseResultSource {
/**
* The result was obtained from the Qonversion API.
*/
API = "Api",
/**
* The result was obtained from the local store.
*/
LOCAL = "Local"
}
export declare enum QonversionErrorCode {
UNKNOWN = "Unknown",// Unknown error
API_RATE_LIMIT_EXCEEDED = "ApiRateLimitExceeded",// API requests rate limit exceeded
APPLE_STORE_ERROR = "AppleStoreError",// Apple Store error received
BACKEND_ERROR = "BackendError",// There was a backend error
BILLING_UNAVAILABLE = "BillingUnavailable",// The Billing service is unavailable on the device
CLIENT_INVALID = "ClientInvalid",// Client is not allowed to issue the request, etc
CLOUD_SERVICE_NETWORK_CONNECTION_FAILED = "CloudServiceNetworkConnectionFailed",// The device could not connect to the network
CLOUD_SERVICE_PERMISSION_DENIED = "CloudServicePermissionDenied",// User is not allowed to access cloud service information
CLOUD_SERVICE_REVOKED = "CloudServiceRevoked",// User has revoked permission to use this cloud service
FAILED_TO_RECEIVE_DATA = "FailedToReceiveData",// Could not receive data
FEATURE_NOT_SUPPORTED = "FeatureNotSupported",// The requested feature is not supported
FRAUD_PURCHASE = "FraudPurchase",// Fraud purchase was detected
INCORRECT_REQUEST = "IncorrectRequest",// Request failed
INTERNAL_ERROR = "InternalError",// Internal backend error
INVALID_CLIENT_UID = "InvalidClientUid",// Client Uid is invalid or not set
INVALID_CREDENTIALS = "InvalidCredentials",// Access token is invalid or not set
INVALID_STORE_CREDENTIALS = "InvalidStoreCredentials",// This account does not have access to the requested application
LAUNCH_ERROR = "LaunchError",// There was an error while launching Qonversion SDK
NETWORK_CONNECTION_FAILED = "NetworkConnectionFailed",// There was a network issue. Make sure that the Internet connection is available on the device
OFFERINGS_NOT_FOUND = "OfferingsNotFound",// No offerings found
PAYMENT_INVALID = "PaymentInvalid",// Purchase identifier was invalid, etc.
PAYMENT_NOT_ALLOWED = "PaymentNotAllowed",// This device is not allowed to make the payment
PLAY_STORE_ERROR = "PlayStoreError",// There was an issue with the Play Store service
PRIVACY_ACKNOWLEDGEMENT_REQUIRED = "PrivacyAcknowledgementRequired",// User needs to acknowledge Apple's privacy policy
PRODUCT_ALREADY_OWNED = "ProductAlreadyOwned",// Failed to purchase since item is already owned
PRODUCT_NOT_FOUND = "ProductNotFound",// Failed to purchase since the Qonversion product was not found
PRODUCT_NOT_OWNED = "ProductNotOwned",// Failed to consume purchase since item is not owned
PROJECT_CONFIG_ERROR = "ProjectConfigError",// The project is not configured or configured incorrectly in the Qonversion Dashboard
PURCHASE_CANCELED = "PurchaseCanceled",// User pressed back or canceled a dialog for purchase
PURCHASE_INVALID = "PurchaseInvalid",// Failure of purchase
PURCHASE_PENDING = "PurchasePending",// Purchase is pending
PURCHASE_UNSPECIFIED = "PurchaseUnspecified",// Unspecified state of the purchase
RECEIPT_VALIDATION_ERROR = "ReceiptValidationError",// Receipt validation error
REMOTE_CONFIGURATION_NOT_AVAILABLE = "RemoteConfigurationNotAvailable",// Remote configuration is not available for the current user or for the provided context key
RESPONSE_PARSING_FAILED = "ResponseParsingFailed",// A problem occurred while serializing or deserializing data
STORE_PRODUCT_NOT_AVAILABLE = "StoreProductNotAvailable",// Requested product is not available for purchase or its product id was not found
UNAUTHORIZED_REQUEST_DATA = "UnauthorizedRequestData",// App is attempting to use SKPayment's requestData property, but does not have the appropriate entitlement
UNKNOWN_CLIENT_PLATFORM = "UnknownClientPlatform"
}
/**
* Theme mode for No-Code screens.
* Use this to control how screens adapt to light/dark themes.
*/
export declare enum NoCodesTheme {
/**
* Automatically follow the device's system appearance (default).
* The screen will use light theme in light mode and dark theme in dark mode.
*/
AUTO = "auto",
/**
* Force light theme regardless of device settings.
*/
LIGHT = "light",
/**
* Force dark theme regardless of device settings.
*/
DARK = "dark"
}