expo-iap 5.1.0 → 5.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -130,7 +130,7 @@ class ExpoIapModule : Module() {
130
130
  ExpoIapLog.debug("Activity available: ${it.javaClass.name}")
131
131
  openIap.setActivity(it)
132
132
  }.onFailure {
133
- ExpoIapLog.warning("Activity not available during initConnection - OpenIAP will use Context")
133
+ ExpoIapLog.warning("Activity not available during initConnection")
134
134
  }
135
135
 
136
136
  // If already connected, short-circuit
@@ -150,8 +150,10 @@ export declare const getTransactionJwsIOS: QueryField<'getTransactionJwsIOS'>;
150
150
  *
151
151
  * Note: This only works on real devices, not simulators.
152
152
  *
153
- * @returns The verified redeemed purchase on iOS 27+, or null after the
154
- * legacy sheet is presented on earlier iOS versions.
153
+ * @returns The verified redeemed purchase when built with Xcode 27+ and
154
+ * running on Apple 27+. Earlier iOS/visionOS system sheets return null;
155
+ * Catalyst 16–26 surfaces StoreKitError.unknown, and Catalyst 15 is a no-op
156
+ * that returns null.
155
157
  * @throws Error if called on non-iOS platform or tvOS
156
158
  *
157
159
  * @platform iOS
@@ -1 +1 @@
1
- {"version":3,"file":"ios.d.ts","sourceRoot":"","sources":["../../src/modules/ios.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ios.d.ts","sourceRoot":"","sources":["../../src/modules/ios.ts"],"names":[],"mappings":"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"}
@@ -227,8 +227,10 @@ export const getTransactionJwsIOS = async (sku) => {
227
227
  *
228
228
  * Note: This only works on real devices, not simulators.
229
229
  *
230
- * @returns The verified redeemed purchase on iOS 27+, or null after the
231
- * legacy sheet is presented on earlier iOS versions.
230
+ * @returns The verified redeemed purchase when built with Xcode 27+ and
231
+ * running on Apple 27+. Earlier iOS/visionOS system sheets return null;
232
+ * Catalyst 16–26 surfaces StoreKitError.unknown, and Catalyst 15 is a no-op
233
+ * that returns null.
232
234
  * @throws Error if called on non-iOS platform or tvOS
233
235
  *
234
236
  * @platform iOS
@@ -1 +1 @@
1
- {"version":3,"file":"ios.js","sourceRoot":"","sources":["../../src/modules/ios.ts"],"names":[],"mappings":"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","sourcesContent":["// External dependencies\n\n// Internal modules\n// import removed: use purchaseUpdatedListener directly in app code\nimport ExpoIapModule from '../ExpoIapModule';\n\n// Types\nimport type {\n ExternalPurchaseCustomLinkNoticeResultIOS,\n ExternalPurchaseCustomLinkTokenResultIOS,\n ExternalPurchaseLinkResultIOS,\n ExternalPurchaseNoticeResultIOS,\n MutationField,\n ProductIOS,\n Purchase,\n PurchaseIOS,\n QueryField,\n SubscriptionStatusIOS,\n} from '../types';\nimport {type PurchaseError} from '../utils/errorMapping';\nimport {decodeApplePurchases} from '../utils/availablePurchases';\nimport {Linking, Platform} from 'react-native';\n\n/**\n * Enforce the documented iOS-only contract. Without this, calling a\n * suffixed wrapper on another platform falls through to the native proxy\n * and surfaces as an opaque `TypeError: ExpoIapModule.<name> is not a\n * function` instead of the promised platform error.\n */\nconst requireIosPlatform = (methodName: string): void => {\n if (Platform.OS !== 'ios') {\n throw new Error(`${methodName} is only available on iOS`);\n }\n};\n\nexport type TransactionEvent = {\n transaction?: Purchase;\n error?: PurchaseError;\n};\n\n// Listeners\n\n// Type guards\nexport function isProductIOS<T extends {platform?: string}>(\n item: unknown,\n): item is T & {platform: 'ios'} {\n return (\n item != null &&\n typeof item === 'object' &&\n 'platform' in item &&\n typeof (item as any).platform === 'string' &&\n (item as any).platform.toLowerCase() === 'ios'\n );\n}\n\n// Functions\n/**\n * Sync state with Appstore (iOS only)\n * https://developer.apple.com/documentation/storekit/appstore/3791906-sync\n *\n * @returns Promise resolving to null on success\n * @throws Error if called on non-iOS platform\n *\n * @platform iOS\n *\n * @see {@link https://openiap.dev/docs/apis/ios/sync-ios}\n */\nexport const syncIOS: MutationField<'syncIOS'> = async () => {\n requireIosPlatform('syncIOS');\n return !!(await ExpoIapModule.syncIOS());\n};\n\n/**\n * Check if user is eligible for introductory offer\n *\n * @param groupId - The subscription group ID\n * @returns Promise resolving to true if eligible\n * @throws Error if called on non-iOS platform\n *\n * @platform iOS\n *\n * @see {@link https://openiap.dev/docs/apis/ios/is-eligible-for-intro-offer-ios}\n */\nexport const isEligibleForIntroOfferIOS: QueryField<\n 'isEligibleForIntroOfferIOS'\n> = async (groupId) => {\n requireIosPlatform('isEligibleForIntroOfferIOS');\n if (!groupId) {\n throw new Error('isEligibleForIntroOfferIOS requires a groupId');\n }\n return ExpoIapModule.isEligibleForIntroOfferIOS(groupId);\n};\n\n/**\n * Get subscription status for a specific SKU\n *\n * @param sku The product SKU\n * @returns Promise resolving to array of subscription status\n * @throws Error if called on non-iOS platform\n *\n * @platform iOS\n *\n * @see {@link https://openiap.dev/docs/apis/ios/subscription-status-ios}\n */\nexport const subscriptionStatusIOS: QueryField<\n 'subscriptionStatusIOS'\n> = async (sku) => {\n requireIosPlatform('subscriptionStatusIOS');\n if (!sku) {\n throw new Error('subscriptionStatusIOS requires a SKU');\n }\n const status = await ExpoIapModule.subscriptionStatusIOS(sku);\n return (status ?? []) as SubscriptionStatusIOS[];\n};\n\n/**\n * Get current entitlement for a specific SKU\n *\n * @param sku The product SKU\n * @returns Promise resolving to current entitlement\n * @throws Error if called on non-iOS platform\n *\n * @platform iOS\n *\n * @see {@link https://openiap.dev/docs/apis/ios/current-entitlement-ios}\n */\nexport const currentEntitlementIOS: QueryField<\n 'currentEntitlementIOS'\n> = async (sku) => {\n requireIosPlatform('currentEntitlementIOS');\n if (!sku) {\n throw new Error('currentEntitlementIOS requires a SKU');\n }\n const purchase = await ExpoIapModule.currentEntitlementIOS(sku);\n return (purchase ?? null) as PurchaseIOS | null;\n};\n\n/**\n * Get latest transaction for a specific SKU\n *\n * @param sku The product SKU\n * @returns Promise resolving to latest transaction\n * @throws Error if called on non-iOS platform\n *\n * @platform iOS\n *\n * @see {@link https://openiap.dev/docs/apis/ios/latest-transaction-ios}\n */\nexport const latestTransactionIOS: QueryField<'latestTransactionIOS'> = async (\n sku,\n) => {\n requireIosPlatform('latestTransactionIOS');\n if (!sku) {\n throw new Error('latestTransactionIOS requires a SKU');\n }\n const transaction = await ExpoIapModule.latestTransactionIOS(sku);\n return (transaction ?? null) as PurchaseIOS | null;\n};\n\n/**\n * Begin refund request for a specific SKU\n *\n * @param sku The product SKU\n * @returns Promise resolving to refund request status\n * @throws Error if called on non-iOS platform\n *\n * @platform iOS\n *\n * @see {@link https://openiap.dev/docs/apis/ios/begin-refund-request-ios}\n */\nexport const beginRefundRequestIOS: MutationField<\n 'beginRefundRequestIOS'\n> = async (sku) => {\n requireIosPlatform('beginRefundRequestIOS');\n if (!sku) {\n throw new Error('beginRefundRequestIOS requires a SKU');\n }\n const status = await ExpoIapModule.beginRefundRequestIOS(sku);\n return status ?? null;\n};\n\n/**\n * Shows the system UI for managing subscriptions.\n * Returns an array of subscriptions that had status changes after the UI is closed.\n *\n * @returns Promise<Purchase[]> - Array of subscriptions with status changes (e.g., auto-renewal toggled)\n * @throws Error if called on non-iOS platform\n *\n * @platform iOS\n *\n * @see {@link https://openiap.dev/docs/apis/ios/show-manage-subscriptions-ios}\n */\nexport const showManageSubscriptionsIOS: MutationField<\n 'showManageSubscriptionsIOS'\n> = async () => {\n requireIosPlatform('showManageSubscriptionsIOS');\n const purchases = await ExpoIapModule.showManageSubscriptionsIOS();\n return decodeApplePurchases(purchases);\n};\n\n/**\n * Get the receipt data from the iOS device.\n * This returns the base64 encoded receipt data which can be sent to your server\n * for verification with Apple's server.\n *\n * NOTE: For proper security, always verify receipts on your server using\n * Apple's verifyReceipt endpoint, not directly from the app.\n *\n * @returns {Promise<string>} Base64 encoded receipt data\n *\n * @see {@link https://openiap.dev/docs/apis/ios/get-receipt-data-ios}\n */\nexport const getReceiptDataIOS: QueryField<'getReceiptDataIOS'> = async () => {\n requireIosPlatform('getReceiptDataIOS');\n return ExpoIapModule.getReceiptDataIOS();\n};\n\n/**\n * Refresh the receipt data from Apple's servers and return the updated receipt.\n * This calls AppStore.sync() before reading the receipt, ensuring the latest\n * receipt data is available. Use this after a first purchase when\n * getReceiptDataIOS() may return an empty string because the receipt file\n * has not yet been written to disk.\n *\n * @returns {Promise<string>} Base64 encoded receipt data\n *\n * @platform iOS\n */\nexport const requestReceiptRefreshIOS = async (): Promise<string> => {\n requireIosPlatform('requestReceiptRefreshIOS');\n return ExpoIapModule.requestReceiptRefreshIOS();\n};\n\n/**\n * Check if a transaction is verified through StoreKit 2.\n * StoreKit 2 performs local verification of transaction JWS signatures.\n *\n * @param sku The product's SKU (on iOS)\n * @returns Promise resolving to true if the transaction is verified\n * @throws Error if called on non-iOS platform\n *\n * @platform iOS\n *\n * @see {@link https://openiap.dev/docs/apis/ios/is-transaction-verified-ios}\n */\nexport const isTransactionVerifiedIOS: QueryField<\n 'isTransactionVerifiedIOS'\n> = async (sku) => {\n requireIosPlatform('isTransactionVerifiedIOS');\n if (!sku) {\n throw new Error('isTransactionVerifiedIOS requires a SKU');\n }\n return ExpoIapModule.isTransactionVerifiedIOS(sku);\n};\n\n/**\n * Get the JWS representation of a purchase for server-side verification.\n * The JWS (JSON Web Signature) can be verified on your server using Apple's public keys.\n *\n * @param sku The product's SKU (on iOS)\n * @returns Promise resolving to JWS representation of the transaction\n * @throws Error if called on non-iOS platform\n *\n * @platform iOS\n *\n * @see {@link https://openiap.dev/docs/apis/ios/get-transaction-jws-ios}\n */\nexport const getTransactionJwsIOS: QueryField<'getTransactionJwsIOS'> = async (\n sku,\n) => {\n requireIosPlatform('getTransactionJwsIOS');\n if (!sku) {\n throw new Error('getTransactionJwsIOS requires a SKU');\n }\n const jws = await ExpoIapModule.getTransactionJwsIOS(sku);\n return jws ?? '';\n};\n\n/**\n * Present the code redemption sheet for offer codes (iOS only).\n * This allows users to redeem promotional codes for in-app purchases and subscriptions.\n *\n * Note: This only works on real devices, not simulators.\n *\n * @returns The verified redeemed purchase on iOS 27+, or null after the\n * legacy sheet is presented on earlier iOS versions.\n * @throws Error if called on non-iOS platform or tvOS\n *\n * @platform iOS\n *\n * @see {@link https://openiap.dev/docs/apis/ios/present-code-redemption-sheet-ios}\n */\nexport const presentCodeRedemptionSheetIOS: MutationField<\n 'presentCodeRedemptionSheetIOS'\n> = async () => {\n requireIosPlatform('presentCodeRedemptionSheetIOS');\n return await ExpoIapModule.presentCodeRedemptionSheetIOS();\n};\n\n/**\n * Get app transaction information (iOS 16.0+).\n * AppTransaction represents the initial purchase that unlocked the app.\n *\n * NOTE: This function requires:\n * - iOS 16.0 or later at runtime\n * - Xcode 15.0+ with iOS 16.0 SDK for compilation\n *\n * @returns Promise resolving to the app transaction information or null if not available\n * @throws Error if called on non-iOS platform, iOS version < 16.0, or compiled with older SDK\n *\n * @platform iOS\n * @since iOS 16.0\n *\n * @see {@link https://openiap.dev/docs/apis/ios/get-app-transaction-ios}\n */\nexport const getAppTransactionIOS: QueryField<\n 'getAppTransactionIOS'\n> = async () => {\n requireIosPlatform('getAppTransactionIOS');\n return (await ExpoIapModule.getAppTransactionIOS()) ?? null;\n};\n\n/**\n * Get information about a promoted product if one is available (iOS only).\n * Promoted products are products that the App Store promotes on your behalf.\n * This is called after a promoted product event is received from the App Store.\n *\n * @returns Promise resolving to the promoted product information or null if none available\n * @throws Error if called on non-iOS platform\n *\n * @platform iOS\n *\n * @see {@link https://openiap.dev/docs/apis/ios/get-promoted-product-ios}\n */\nexport const getPromotedProductIOS: QueryField<\n 'getPromotedProductIOS'\n> = async () => {\n requireIosPlatform('getPromotedProductIOS');\n const product = await ExpoIapModule.getPromotedProductIOS();\n return (product ?? null) as ProductIOS | null;\n};\n\n/**\n * Get pending transactions that haven't been finished yet (iOS only).\n *\n * @returns Promise resolving to array of pending transactions\n * @platform iOS\n *\n * @see {@link https://openiap.dev/docs/apis/ios/get-pending-transactions-ios}\n */\nexport const getPendingTransactionsIOS: QueryField<\n 'getPendingTransactionsIOS'\n> = async () => {\n requireIosPlatform('getPendingTransactionsIOS');\n const transactions = await ExpoIapModule.getPendingTransactionsIOS();\n return decodeApplePurchases(transactions);\n};\n\n/**\n * List every StoreKit transaction (finished + unfinished) for the current user.\n *\n * @see {@link https://openiap.dev/docs/apis/ios/get-all-transactions-ios}\n */\nexport const getAllTransactionsIOS: QueryField<\n 'getAllTransactionsIOS'\n> = async () => {\n requireIosPlatform('getAllTransactionsIOS');\n const transactions = await ExpoIapModule.getAllTransactionsIOS();\n return decodeApplePurchases(transactions);\n};\n\n/**\n * Clear a specific transaction (iOS only).\n *\n * @returns Promise resolving when transaction is cleared\n * @platform iOS\n *\n * @see {@link https://openiap.dev/docs/apis/ios/clear-transaction-ios}\n */\nexport const clearTransactionIOS: MutationField<\n 'clearTransactionIOS'\n> = async () => {\n requireIosPlatform('clearTransactionIOS');\n return !!(await ExpoIapModule.clearTransactionIOS());\n};\n\n/**\n * Deep link to subscriptions screen on iOS.\n * @returns {Promise<void>}\n *\n * @platform iOS\n */\nexport const deepLinkToSubscriptionsIOS = (): Promise<void> =>\n Linking.openURL('https://apps.apple.com/account/subscriptions');\n\n/**\n * Check if the device can present an external purchase notice sheet (iOS 17.4+).\n *\n * Wraps `ExternalPurchase.canPresent`, which Apple introduced in iOS 17.4.\n * Note: the notice sheet itself (`presentExternalPurchaseNoticeSheetIOS`)\n * still requires iOS 18.2+; only the eligibility check is available earlier.\n *\n * @returns Promise resolving to true if the notice sheet can be presented\n * @platform iOS\n *\n * @see {@link https://openiap.dev/docs/apis/ios/can-present-external-purchase-notice-ios}\n */\nexport const canPresentExternalPurchaseNoticeIOS: QueryField<\n 'canPresentExternalPurchaseNoticeIOS'\n> = async () => {\n requireIosPlatform('canPresentExternalPurchaseNoticeIOS');\n return !!(await ExpoIapModule.canPresentExternalPurchaseNoticeIOS());\n};\n\n/**\n * Present an external purchase notice sheet to inform users about external purchases (iOS 15.4+).\n * This must be called before opening an external purchase link.\n * Returns the external purchase token when user continues.\n *\n * @returns Promise resolving to the result with action, token, and error if any\n * @platform iOS\n *\n * @see {@link https://openiap.dev/docs/apis/ios/present-external-purchase-notice-sheet-ios}\n */\nexport const presentExternalPurchaseNoticeSheetIOS: MutationField<\n 'presentExternalPurchaseNoticeSheetIOS'\n> = async () => {\n requireIosPlatform('presentExternalPurchaseNoticeSheetIOS');\n const result = await ExpoIapModule.presentExternalPurchaseNoticeSheetIOS();\n return result as ExternalPurchaseNoticeResultIOS;\n};\n\n/**\n * Present an external purchase link to redirect users to your website (iOS 16.0+).\n *\n * @param url - The external purchase URL to open\n * @returns Promise resolving to the result with success status and error if any\n * @platform iOS\n *\n * @see {@link https://openiap.dev/docs/apis/ios/present-external-purchase-link-ios}\n */\nexport const presentExternalPurchaseLinkIOS: MutationField<\n 'presentExternalPurchaseLinkIOS'\n> = async (url: string) => {\n requireIosPlatform('presentExternalPurchaseLinkIOS');\n const result = await ExpoIapModule.presentExternalPurchaseLinkIOS(url);\n return result as ExternalPurchaseLinkResultIOS;\n};\n\n/**\n * Check if app is eligible for ExternalPurchaseCustomLink API (iOS 18.1+).\n * Returns true if the app can use custom external purchase links.\n *\n * @returns Promise resolving to true if eligible\n * @platform iOS\n * @see https://developer.apple.com/documentation/storekit/externalpurchasecustomlink/iseligible\n *\n * @see {@link https://openiap.dev/docs/apis/ios/is-eligible-for-external-purchase-custom-link-ios}\n */\nexport const isEligibleForExternalPurchaseCustomLinkIOS: QueryField<\n 'isEligibleForExternalPurchaseCustomLinkIOS'\n> = async () => {\n requireIosPlatform('isEligibleForExternalPurchaseCustomLinkIOS');\n return !!(await ExpoIapModule.isEligibleForExternalPurchaseCustomLinkIOS());\n};\n\n/**\n * Get external purchase token for reporting to Apple (iOS 18.1+).\n * Use this token with Apple's External Purchase Server API to report transactions.\n *\n * @param tokenType - Token type: 'acquisition' (new customers) or 'services' (existing customers)\n * @returns Promise resolving to the token result with token string or error\n * @platform iOS\n * @see https://developer.apple.com/documentation/storekit/externalpurchasecustomlink/token(for:)\n *\n * @see {@link https://openiap.dev/docs/apis/ios/get-external-purchase-custom-link-token-ios}\n */\nexport const getExternalPurchaseCustomLinkTokenIOS: QueryField<\n 'getExternalPurchaseCustomLinkTokenIOS'\n> = async (tokenType) => {\n requireIosPlatform('getExternalPurchaseCustomLinkTokenIOS');\n if (!tokenType) {\n throw new Error(\n \"getExternalPurchaseCustomLinkTokenIOS requires a tokenType ('acquisition' or 'services')\",\n );\n }\n const result = await ExpoIapModule.getExternalPurchaseCustomLinkTokenIOS(\n tokenType,\n );\n return result as ExternalPurchaseCustomLinkTokenResultIOS;\n};\n\n/**\n * Show ExternalPurchaseCustomLink notice sheet (iOS 18.1+).\n * Displays the system disclosure notice sheet for custom external purchase links.\n * Call this after a deliberate customer interaction before linking out to external purchases.\n *\n * @param noticeType - Notice type: 'browser' (external purchases displayed in browser)\n * @returns Promise resolving to the result with continued status and error if any\n * @platform iOS\n * @see https://developer.apple.com/documentation/storekit/externalpurchasecustomlink/shownotice(type:)\n *\n * @see {@link https://openiap.dev/docs/apis/ios/show-external-purchase-custom-link-notice-ios}\n */\nexport const showExternalPurchaseCustomLinkNoticeIOS: MutationField<\n 'showExternalPurchaseCustomLinkNoticeIOS'\n> = async (noticeType) => {\n requireIosPlatform('showExternalPurchaseCustomLinkNoticeIOS');\n if (!noticeType) {\n throw new Error(\n \"showExternalPurchaseCustomLinkNoticeIOS requires a noticeType ('browser')\",\n );\n }\n const result = await ExpoIapModule.showExternalPurchaseCustomLinkNoticeIOS(\n noticeType,\n );\n return result as ExternalPurchaseCustomLinkNoticeResultIOS;\n};\n\n// iOS-specific APIs only; cross-platform wrappers live in src/index.ts\n"]}
1
+ {"version":3,"file":"ios.js","sourceRoot":"","sources":["../../src/modules/ios.ts"],"names":[],"mappings":"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","sourcesContent":["// External dependencies\n\n// Internal modules\n// import removed: use purchaseUpdatedListener directly in app code\nimport ExpoIapModule from '../ExpoIapModule';\n\n// Types\nimport type {\n ExternalPurchaseCustomLinkNoticeResultIOS,\n ExternalPurchaseCustomLinkTokenResultIOS,\n ExternalPurchaseLinkResultIOS,\n ExternalPurchaseNoticeResultIOS,\n MutationField,\n ProductIOS,\n Purchase,\n PurchaseIOS,\n QueryField,\n SubscriptionStatusIOS,\n} from '../types';\nimport {type PurchaseError} from '../utils/errorMapping';\nimport {decodeApplePurchases} from '../utils/availablePurchases';\nimport {Linking, Platform} from 'react-native';\n\n/**\n * Enforce the documented iOS-only contract. Without this, calling a\n * suffixed wrapper on another platform falls through to the native proxy\n * and surfaces as an opaque `TypeError: ExpoIapModule.<name> is not a\n * function` instead of the promised platform error.\n */\nconst requireIosPlatform = (methodName: string): void => {\n if (Platform.OS !== 'ios') {\n throw new Error(`${methodName} is only available on iOS`);\n }\n};\n\nexport type TransactionEvent = {\n transaction?: Purchase;\n error?: PurchaseError;\n};\n\n// Listeners\n\n// Type guards\nexport function isProductIOS<T extends {platform?: string}>(\n item: unknown,\n): item is T & {platform: 'ios'} {\n return (\n item != null &&\n typeof item === 'object' &&\n 'platform' in item &&\n typeof (item as any).platform === 'string' &&\n (item as any).platform.toLowerCase() === 'ios'\n );\n}\n\n// Functions\n/**\n * Sync state with Appstore (iOS only)\n * https://developer.apple.com/documentation/storekit/appstore/3791906-sync\n *\n * @returns Promise resolving to null on success\n * @throws Error if called on non-iOS platform\n *\n * @platform iOS\n *\n * @see {@link https://openiap.dev/docs/apis/ios/sync-ios}\n */\nexport const syncIOS: MutationField<'syncIOS'> = async () => {\n requireIosPlatform('syncIOS');\n return !!(await ExpoIapModule.syncIOS());\n};\n\n/**\n * Check if user is eligible for introductory offer\n *\n * @param groupId - The subscription group ID\n * @returns Promise resolving to true if eligible\n * @throws Error if called on non-iOS platform\n *\n * @platform iOS\n *\n * @see {@link https://openiap.dev/docs/apis/ios/is-eligible-for-intro-offer-ios}\n */\nexport const isEligibleForIntroOfferIOS: QueryField<\n 'isEligibleForIntroOfferIOS'\n> = async (groupId) => {\n requireIosPlatform('isEligibleForIntroOfferIOS');\n if (!groupId) {\n throw new Error('isEligibleForIntroOfferIOS requires a groupId');\n }\n return ExpoIapModule.isEligibleForIntroOfferIOS(groupId);\n};\n\n/**\n * Get subscription status for a specific SKU\n *\n * @param sku The product SKU\n * @returns Promise resolving to array of subscription status\n * @throws Error if called on non-iOS platform\n *\n * @platform iOS\n *\n * @see {@link https://openiap.dev/docs/apis/ios/subscription-status-ios}\n */\nexport const subscriptionStatusIOS: QueryField<\n 'subscriptionStatusIOS'\n> = async (sku) => {\n requireIosPlatform('subscriptionStatusIOS');\n if (!sku) {\n throw new Error('subscriptionStatusIOS requires a SKU');\n }\n const status = await ExpoIapModule.subscriptionStatusIOS(sku);\n return (status ?? []) as SubscriptionStatusIOS[];\n};\n\n/**\n * Get current entitlement for a specific SKU\n *\n * @param sku The product SKU\n * @returns Promise resolving to current entitlement\n * @throws Error if called on non-iOS platform\n *\n * @platform iOS\n *\n * @see {@link https://openiap.dev/docs/apis/ios/current-entitlement-ios}\n */\nexport const currentEntitlementIOS: QueryField<\n 'currentEntitlementIOS'\n> = async (sku) => {\n requireIosPlatform('currentEntitlementIOS');\n if (!sku) {\n throw new Error('currentEntitlementIOS requires a SKU');\n }\n const purchase = await ExpoIapModule.currentEntitlementIOS(sku);\n return (purchase ?? null) as PurchaseIOS | null;\n};\n\n/**\n * Get latest transaction for a specific SKU\n *\n * @param sku The product SKU\n * @returns Promise resolving to latest transaction\n * @throws Error if called on non-iOS platform\n *\n * @platform iOS\n *\n * @see {@link https://openiap.dev/docs/apis/ios/latest-transaction-ios}\n */\nexport const latestTransactionIOS: QueryField<'latestTransactionIOS'> = async (\n sku,\n) => {\n requireIosPlatform('latestTransactionIOS');\n if (!sku) {\n throw new Error('latestTransactionIOS requires a SKU');\n }\n const transaction = await ExpoIapModule.latestTransactionIOS(sku);\n return (transaction ?? null) as PurchaseIOS | null;\n};\n\n/**\n * Begin refund request for a specific SKU\n *\n * @param sku The product SKU\n * @returns Promise resolving to refund request status\n * @throws Error if called on non-iOS platform\n *\n * @platform iOS\n *\n * @see {@link https://openiap.dev/docs/apis/ios/begin-refund-request-ios}\n */\nexport const beginRefundRequestIOS: MutationField<\n 'beginRefundRequestIOS'\n> = async (sku) => {\n requireIosPlatform('beginRefundRequestIOS');\n if (!sku) {\n throw new Error('beginRefundRequestIOS requires a SKU');\n }\n const status = await ExpoIapModule.beginRefundRequestIOS(sku);\n return status ?? null;\n};\n\n/**\n * Shows the system UI for managing subscriptions.\n * Returns an array of subscriptions that had status changes after the UI is closed.\n *\n * @returns Promise<Purchase[]> - Array of subscriptions with status changes (e.g., auto-renewal toggled)\n * @throws Error if called on non-iOS platform\n *\n * @platform iOS\n *\n * @see {@link https://openiap.dev/docs/apis/ios/show-manage-subscriptions-ios}\n */\nexport const showManageSubscriptionsIOS: MutationField<\n 'showManageSubscriptionsIOS'\n> = async () => {\n requireIosPlatform('showManageSubscriptionsIOS');\n const purchases = await ExpoIapModule.showManageSubscriptionsIOS();\n return decodeApplePurchases(purchases);\n};\n\n/**\n * Get the receipt data from the iOS device.\n * This returns the base64 encoded receipt data which can be sent to your server\n * for verification with Apple's server.\n *\n * NOTE: For proper security, always verify receipts on your server using\n * Apple's verifyReceipt endpoint, not directly from the app.\n *\n * @returns {Promise<string>} Base64 encoded receipt data\n *\n * @see {@link https://openiap.dev/docs/apis/ios/get-receipt-data-ios}\n */\nexport const getReceiptDataIOS: QueryField<'getReceiptDataIOS'> = async () => {\n requireIosPlatform('getReceiptDataIOS');\n return ExpoIapModule.getReceiptDataIOS();\n};\n\n/**\n * Refresh the receipt data from Apple's servers and return the updated receipt.\n * This calls AppStore.sync() before reading the receipt, ensuring the latest\n * receipt data is available. Use this after a first purchase when\n * getReceiptDataIOS() may return an empty string because the receipt file\n * has not yet been written to disk.\n *\n * @returns {Promise<string>} Base64 encoded receipt data\n *\n * @platform iOS\n */\nexport const requestReceiptRefreshIOS = async (): Promise<string> => {\n requireIosPlatform('requestReceiptRefreshIOS');\n return ExpoIapModule.requestReceiptRefreshIOS();\n};\n\n/**\n * Check if a transaction is verified through StoreKit 2.\n * StoreKit 2 performs local verification of transaction JWS signatures.\n *\n * @param sku The product's SKU (on iOS)\n * @returns Promise resolving to true if the transaction is verified\n * @throws Error if called on non-iOS platform\n *\n * @platform iOS\n *\n * @see {@link https://openiap.dev/docs/apis/ios/is-transaction-verified-ios}\n */\nexport const isTransactionVerifiedIOS: QueryField<\n 'isTransactionVerifiedIOS'\n> = async (sku) => {\n requireIosPlatform('isTransactionVerifiedIOS');\n if (!sku) {\n throw new Error('isTransactionVerifiedIOS requires a SKU');\n }\n return ExpoIapModule.isTransactionVerifiedIOS(sku);\n};\n\n/**\n * Get the JWS representation of a purchase for server-side verification.\n * The JWS (JSON Web Signature) can be verified on your server using Apple's public keys.\n *\n * @param sku The product's SKU (on iOS)\n * @returns Promise resolving to JWS representation of the transaction\n * @throws Error if called on non-iOS platform\n *\n * @platform iOS\n *\n * @see {@link https://openiap.dev/docs/apis/ios/get-transaction-jws-ios}\n */\nexport const getTransactionJwsIOS: QueryField<'getTransactionJwsIOS'> = async (\n sku,\n) => {\n requireIosPlatform('getTransactionJwsIOS');\n if (!sku) {\n throw new Error('getTransactionJwsIOS requires a SKU');\n }\n const jws = await ExpoIapModule.getTransactionJwsIOS(sku);\n return jws ?? '';\n};\n\n/**\n * Present the code redemption sheet for offer codes (iOS only).\n * This allows users to redeem promotional codes for in-app purchases and subscriptions.\n *\n * Note: This only works on real devices, not simulators.\n *\n * @returns The verified redeemed purchase when built with Xcode 27+ and\n * running on Apple 27+. Earlier iOS/visionOS system sheets return null;\n * Catalyst 16–26 surfaces StoreKitError.unknown, and Catalyst 15 is a no-op\n * that returns null.\n * @throws Error if called on non-iOS platform or tvOS\n *\n * @platform iOS\n *\n * @see {@link https://openiap.dev/docs/apis/ios/present-code-redemption-sheet-ios}\n */\nexport const presentCodeRedemptionSheetIOS: MutationField<\n 'presentCodeRedemptionSheetIOS'\n> = async () => {\n requireIosPlatform('presentCodeRedemptionSheetIOS');\n return await ExpoIapModule.presentCodeRedemptionSheetIOS();\n};\n\n/**\n * Get app transaction information (iOS 16.0+).\n * AppTransaction represents the initial purchase that unlocked the app.\n *\n * NOTE: This function requires:\n * - iOS 16.0 or later at runtime\n * - Xcode 15.0+ with iOS 16.0 SDK for compilation\n *\n * @returns Promise resolving to the app transaction information or null if not available\n * @throws Error if called on non-iOS platform, iOS version < 16.0, or compiled with older SDK\n *\n * @platform iOS\n * @since iOS 16.0\n *\n * @see {@link https://openiap.dev/docs/apis/ios/get-app-transaction-ios}\n */\nexport const getAppTransactionIOS: QueryField<\n 'getAppTransactionIOS'\n> = async () => {\n requireIosPlatform('getAppTransactionIOS');\n return (await ExpoIapModule.getAppTransactionIOS()) ?? null;\n};\n\n/**\n * Get information about a promoted product if one is available (iOS only).\n * Promoted products are products that the App Store promotes on your behalf.\n * This is called after a promoted product event is received from the App Store.\n *\n * @returns Promise resolving to the promoted product information or null if none available\n * @throws Error if called on non-iOS platform\n *\n * @platform iOS\n *\n * @see {@link https://openiap.dev/docs/apis/ios/get-promoted-product-ios}\n */\nexport const getPromotedProductIOS: QueryField<\n 'getPromotedProductIOS'\n> = async () => {\n requireIosPlatform('getPromotedProductIOS');\n const product = await ExpoIapModule.getPromotedProductIOS();\n return (product ?? null) as ProductIOS | null;\n};\n\n/**\n * Get pending transactions that haven't been finished yet (iOS only).\n *\n * @returns Promise resolving to array of pending transactions\n * @platform iOS\n *\n * @see {@link https://openiap.dev/docs/apis/ios/get-pending-transactions-ios}\n */\nexport const getPendingTransactionsIOS: QueryField<\n 'getPendingTransactionsIOS'\n> = async () => {\n requireIosPlatform('getPendingTransactionsIOS');\n const transactions = await ExpoIapModule.getPendingTransactionsIOS();\n return decodeApplePurchases(transactions);\n};\n\n/**\n * List every StoreKit transaction (finished + unfinished) for the current user.\n *\n * @see {@link https://openiap.dev/docs/apis/ios/get-all-transactions-ios}\n */\nexport const getAllTransactionsIOS: QueryField<\n 'getAllTransactionsIOS'\n> = async () => {\n requireIosPlatform('getAllTransactionsIOS');\n const transactions = await ExpoIapModule.getAllTransactionsIOS();\n return decodeApplePurchases(transactions);\n};\n\n/**\n * Clear a specific transaction (iOS only).\n *\n * @returns Promise resolving when transaction is cleared\n * @platform iOS\n *\n * @see {@link https://openiap.dev/docs/apis/ios/clear-transaction-ios}\n */\nexport const clearTransactionIOS: MutationField<\n 'clearTransactionIOS'\n> = async () => {\n requireIosPlatform('clearTransactionIOS');\n return !!(await ExpoIapModule.clearTransactionIOS());\n};\n\n/**\n * Deep link to subscriptions screen on iOS.\n * @returns {Promise<void>}\n *\n * @platform iOS\n */\nexport const deepLinkToSubscriptionsIOS = (): Promise<void> =>\n Linking.openURL('https://apps.apple.com/account/subscriptions');\n\n/**\n * Check if the device can present an external purchase notice sheet (iOS 17.4+).\n *\n * Wraps `ExternalPurchase.canPresent`, which Apple introduced in iOS 17.4.\n * Note: the notice sheet itself (`presentExternalPurchaseNoticeSheetIOS`)\n * still requires iOS 18.2+; only the eligibility check is available earlier.\n *\n * @returns Promise resolving to true if the notice sheet can be presented\n * @platform iOS\n *\n * @see {@link https://openiap.dev/docs/apis/ios/can-present-external-purchase-notice-ios}\n */\nexport const canPresentExternalPurchaseNoticeIOS: QueryField<\n 'canPresentExternalPurchaseNoticeIOS'\n> = async () => {\n requireIosPlatform('canPresentExternalPurchaseNoticeIOS');\n return !!(await ExpoIapModule.canPresentExternalPurchaseNoticeIOS());\n};\n\n/**\n * Present an external purchase notice sheet to inform users about external purchases (iOS 15.4+).\n * This must be called before opening an external purchase link.\n * Returns the external purchase token when user continues.\n *\n * @returns Promise resolving to the result with action, token, and error if any\n * @platform iOS\n *\n * @see {@link https://openiap.dev/docs/apis/ios/present-external-purchase-notice-sheet-ios}\n */\nexport const presentExternalPurchaseNoticeSheetIOS: MutationField<\n 'presentExternalPurchaseNoticeSheetIOS'\n> = async () => {\n requireIosPlatform('presentExternalPurchaseNoticeSheetIOS');\n const result = await ExpoIapModule.presentExternalPurchaseNoticeSheetIOS();\n return result as ExternalPurchaseNoticeResultIOS;\n};\n\n/**\n * Present an external purchase link to redirect users to your website (iOS 16.0+).\n *\n * @param url - The external purchase URL to open\n * @returns Promise resolving to the result with success status and error if any\n * @platform iOS\n *\n * @see {@link https://openiap.dev/docs/apis/ios/present-external-purchase-link-ios}\n */\nexport const presentExternalPurchaseLinkIOS: MutationField<\n 'presentExternalPurchaseLinkIOS'\n> = async (url: string) => {\n requireIosPlatform('presentExternalPurchaseLinkIOS');\n const result = await ExpoIapModule.presentExternalPurchaseLinkIOS(url);\n return result as ExternalPurchaseLinkResultIOS;\n};\n\n/**\n * Check if app is eligible for ExternalPurchaseCustomLink API (iOS 18.1+).\n * Returns true if the app can use custom external purchase links.\n *\n * @returns Promise resolving to true if eligible\n * @platform iOS\n * @see https://developer.apple.com/documentation/storekit/externalpurchasecustomlink/iseligible\n *\n * @see {@link https://openiap.dev/docs/apis/ios/is-eligible-for-external-purchase-custom-link-ios}\n */\nexport const isEligibleForExternalPurchaseCustomLinkIOS: QueryField<\n 'isEligibleForExternalPurchaseCustomLinkIOS'\n> = async () => {\n requireIosPlatform('isEligibleForExternalPurchaseCustomLinkIOS');\n return !!(await ExpoIapModule.isEligibleForExternalPurchaseCustomLinkIOS());\n};\n\n/**\n * Get external purchase token for reporting to Apple (iOS 18.1+).\n * Use this token with Apple's External Purchase Server API to report transactions.\n *\n * @param tokenType - Token type: 'acquisition' (new customers) or 'services' (existing customers)\n * @returns Promise resolving to the token result with token string or error\n * @platform iOS\n * @see https://developer.apple.com/documentation/storekit/externalpurchasecustomlink/token(for:)\n *\n * @see {@link https://openiap.dev/docs/apis/ios/get-external-purchase-custom-link-token-ios}\n */\nexport const getExternalPurchaseCustomLinkTokenIOS: QueryField<\n 'getExternalPurchaseCustomLinkTokenIOS'\n> = async (tokenType) => {\n requireIosPlatform('getExternalPurchaseCustomLinkTokenIOS');\n if (!tokenType) {\n throw new Error(\n \"getExternalPurchaseCustomLinkTokenIOS requires a tokenType ('acquisition' or 'services')\",\n );\n }\n const result =\n await ExpoIapModule.getExternalPurchaseCustomLinkTokenIOS(tokenType);\n return result as ExternalPurchaseCustomLinkTokenResultIOS;\n};\n\n/**\n * Show ExternalPurchaseCustomLink notice sheet (iOS 18.1+).\n * Displays the system disclosure notice sheet for custom external purchase links.\n * Call this after a deliberate customer interaction before linking out to external purchases.\n *\n * @param noticeType - Notice type: 'browser' (external purchases displayed in browser)\n * @returns Promise resolving to the result with continued status and error if any\n * @platform iOS\n * @see https://developer.apple.com/documentation/storekit/externalpurchasecustomlink/shownotice(type:)\n *\n * @see {@link https://openiap.dev/docs/apis/ios/show-external-purchase-custom-link-notice-ios}\n */\nexport const showExternalPurchaseCustomLinkNoticeIOS: MutationField<\n 'showExternalPurchaseCustomLinkNoticeIOS'\n> = async (noticeType) => {\n requireIosPlatform('showExternalPurchaseCustomLinkNoticeIOS');\n if (!noticeType) {\n throw new Error(\n \"showExternalPurchaseCustomLinkNoticeIOS requires a noticeType ('browser')\",\n );\n }\n const result =\n await ExpoIapModule.showExternalPurchaseCustomLinkNoticeIOS(noticeType);\n return result as ExternalPurchaseCustomLinkNoticeResultIOS;\n};\n\n// iOS-specific APIs only; cross-platform wrappers live in src/index.ts\n"]}
package/build/types.d.ts CHANGED
@@ -40,6 +40,13 @@ export interface AdvancedCommerceInfoIOS {
40
40
  estimatedTax?: (string | null);
41
41
  /** The items purchased as part of this transaction */
42
42
  items: AdvancedCommerceItemIOS[];
43
+ /**
44
+ * Subscription period for this transaction.
45
+ * Available in OpenIAP Spec 3.1.0 / openiap-apple 3.1.0
46
+ * (requires iOS 18.4+, macOS 15.4+, tvOS 18.4+, watchOS 11.4+,
47
+ * or visionOS 2.4+).
48
+ */
49
+ period?: (SubscriptionPeriodValueIOS | null);
43
50
  /** Request reference identifier for tracking */
44
51
  requestReferenceId?: (string | null);
45
52
  /** Tax code for the transaction */
@@ -750,11 +757,15 @@ export interface Mutation {
750
757
  openRedeemOfferCodeAndroid: Promise<boolean>;
751
758
  /**
752
759
  * Show the App Store offer code redemption sheet.
753
- * On iOS 27+, Mac Catalyst 27+, and visionOS 27+, returns the verified
754
- * transaction produced by the redemption. Earlier iOS and Mac Catalyst
755
- * versions present the legacy sheet and return null; reconcile purchases
756
- * through the normal transaction listener or an explicit available-purchases
757
- * refresh.
760
+ * When built with Xcode 27+ and running on iOS 27+, Mac Catalyst 27+, or
761
+ * visionOS 27+, returns the verified transaction produced by the redemption.
762
+ * StoreKit 2's scene-based sheet returns null after presentation on iOS 16–26,
763
+ * visionOS 1–26, and those platforms on Apple 27 when built with an older SDK.
764
+ * iOS 15 uses the StoreKit 1 sheet and also returns null. On Mac Catalyst, the
765
+ * scene-based API throws StoreKitError.unknown, while the Catalyst 15 StoreKit 1
766
+ * call has no effect and returns null. Reconcile null results from a presented
767
+ * sheet through the normal transaction listener or an explicit
768
+ * available-purchases refresh.
758
769
  * See: https://openiap.dev/docs/apis/ios/present-code-redemption-sheet-ios
759
770
  */
760
771
  presentCodeRedemptionSheetIOS?: Promise<(PurchaseIOS | null)>;
@@ -1320,7 +1331,12 @@ export interface Query {
1320
1331
  */
1321
1332
  getPendingTransactionsIOS: Promise<PurchaseIOS[]>;
1322
1333
  /**
1323
- * Read the App Store-promoted product, if any (iOS 11+).
1334
+ * Read the App Store-promoted product, if any (iOS 15+).
1335
+ * OpenIAP consumes PurchaseIntent.intents on iOS 16.4+ and uses the
1336
+ * StoreKit 1 observer only on iOS 15–16.3. When PurchaseIntent carries an
1337
+ * externally redeemed win-back offer, OpenIAP preserves it for the next
1338
+ * matching requestPurchase unless the caller supplies an explicit win-back or
1339
+ * promotional offer.
1324
1340
  * See: https://openiap.dev/docs/apis/ios/get-promoted-product-ios
1325
1341
  */
1326
1342
  getPromotedProductIOS?: Promise<(ProductIOS | null)>;
@@ -1724,7 +1740,12 @@ export interface Subscription {
1724
1740
  * openiap-google 2.3.0 (requires Play Billing 9.1.0+).
1725
1741
  */
1726
1742
  developerProvidedBillingAndroid: DeveloperProvidedBillingDetailsAndroid;
1727
- /** Fires when the App Store surfaces a promoted product (iOS only) */
1743
+ /**
1744
+ * Fires when the App Store surfaces a promoted product (iOS only).
1745
+ * A win-back offer attached to PurchaseIntent is preserved for the next
1746
+ * matching requestPurchase unless the caller supplies an explicit win-back or
1747
+ * promotional offer.
1748
+ */
1728
1749
  promotedProductIOS: string;
1729
1750
  /** Fires when a purchase fails or is cancelled */
1730
1751
  purchaseError: PurchaseError;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,8CAA8C;AAC9C,oFAAoF;AACpF,+EAA+E;AA4b/E,MAAM,CAAN,IAAY,SAqCX;AArCD,WAAY,SAAS;IACnB,yDAA4C,CAAA;IAC5C,2CAA8B,CAAA;IAC9B,iDAAoC,CAAA;IACpC,gFAAmE,CAAA;IACnE,uDAA0C,CAAA;IAC1C,mDAAsC,CAAA;IACtC,iDAAoC,CAAA;IACpC,+CAAkC,CAAA;IAClC,qDAAwC,CAAA;IACxC,4CAA+B,CAAA;IAC/B,0DAA6C,CAAA;IAC7C,kDAAqC,CAAA;IACrC,+CAAkC,CAAA;IAClC,wCAA2B,CAAA;IAC3B,4CAA+B,CAAA;IAC/B,iDAAoC,CAAA;IACpC,2CAA8B,CAAA;IAC9B,mCAAsB,CAAA;IACtB,yCAA4B,CAAA;IAC5B,gCAAmB,CAAA;IACnB,6CAAgC,CAAA;IAChC,wEAA2D,CAAA;IAC3D,qFAAwE,CAAA;IACxE,4EAA+D,CAAA;IAC/D,2CAA8B,CAAA;IAC9B,yCAA4B,CAAA;IAC5B,yDAA4C,CAAA;IAC5C,2CAA8B,CAAA;IAC9B,+CAAkC,CAAA;IAClC,0CAA6B,CAAA;IAC7B,oDAAuC,CAAA;IACvC,qCAAwB,CAAA;IACxB,0EAA6D,CAAA;IAC7D,gCAAmB,CAAA;IACnB,6CAAgC,CAAA;IAChC,qCAAwB,CAAA;AAC1B,CAAC,EArCW,SAAS,KAAT,SAAS,QAqCpB;AAkzDD,mCAAmC","sourcesContent":["// ============================================================================\n// AUTO-GENERATED TYPES — DO NOT EDIT DIRECTLY\n// Refresh this file with the generated-types workflow documented for your checkout.\n// ============================================================================\n\nexport interface ActiveSubscription {\n autoRenewingAndroid?: (boolean | null);\n basePlanIdAndroid?: (string | null);\n /**\n * The current plan identifier. This is:\n * - On Android: the basePlanId (e.g., \"premium\", \"premium-year\")\n * - On iOS: the productId (e.g., \"com.example.premium_monthly\", \"com.example.premium_yearly\")\n * This provides a unified way to identify which specific plan/tier the user is subscribed to.\n */\n currentPlanId?: (string | null);\n daysUntilExpirationIOS?: (number | null);\n environmentIOS?: (string | null);\n expirationDateIOS?: (number | null);\n isActive: boolean;\n productId: string;\n purchaseToken?: (string | null);\n /** Required for subscription upgrade/downgrade on Android */\n purchaseTokenAndroid?: (string | null);\n /**\n * Renewal information from StoreKit 2 (iOS only). Contains details about subscription renewal status,\n * pending upgrades/downgrades, and auto-renewal preferences.\n */\n renewalInfoIOS?: (RenewalInfoIOS | null);\n /** Unix timestamp in milliseconds since January 1, 1970 UTC. */\n transactionDate: number;\n transactionId: string;\n}\n\n/**\n * Advanced Commerce metadata from a transaction (iOS 18.4+).\n * Contains item details, tax information, and refund data for purchases\n * made through the Advanced Commerce API using generic SKUs.\n * Only present for transactions that use the Advanced Commerce API.\n */\nexport interface AdvancedCommerceInfoIOS {\n /** Optional description */\n description?: (string | null);\n /** Optional display name */\n displayName?: (string | null);\n /** Estimated tax amount (decimal string) */\n estimatedTax?: (string | null);\n /** The items purchased as part of this transaction */\n items: AdvancedCommerceItemIOS[];\n /** Request reference identifier for tracking */\n requestReferenceId?: (string | null);\n /** Tax code for the transaction */\n taxCode?: (string | null);\n /** Price excluding tax (decimal string) */\n taxExclusivePrice?: (string | null);\n /** Tax rate applied (decimal string) */\n taxRate?: (string | null);\n}\n\n/** Details of an Advanced Commerce item (iOS 18.4+). */\nexport interface AdvancedCommerceItemDetailsIOS {\n /** JSON representation of the item details */\n jsonRepresentation?: (string | null);\n}\n\n/**\n * An item purchased through the Advanced Commerce API (iOS 18.4+).\n * Represents a developer-defined product within a generic SKU transaction.\n */\nexport interface AdvancedCommerceItemIOS {\n /** The item's detail information */\n details?: (AdvancedCommerceItemDetailsIOS | null);\n /** Refunds issued for this item, if any */\n refunds?: (AdvancedCommerceRefundIOS[] | null);\n /** Date access to this item was revoked (milliseconds since epoch) */\n revocationDate?: (number | null);\n}\n\n/** Refund information for an Advanced Commerce item (iOS 18.4+). */\nexport interface AdvancedCommerceRefundIOS {\n /** JSON representation of the refund details */\n jsonRepresentation?: (string | null);\n}\n\nexport interface AndroidSubscriptionOfferInput {\n /** Offer token */\n offerToken: string;\n /** Product SKU */\n sku: string;\n}\n\nexport interface AppTransaction {\n appId: number;\n appTransactionId?: (string | null);\n appVersion: string;\n appVersionId: number;\n bundleId: string;\n deviceVerification: string;\n deviceVerificationNonce: string;\n environment: string;\n originalAppVersion: string;\n /**\n * Original App Store platform raw value. Xcode 27 adds the back-deployed managed\n * acquisition-platform value.\n */\n originalPlatform?: (string | null);\n originalPurchaseDate: number;\n preorderDate?: (number | null);\n /**\n * Date the app-acquisition transaction was revoked (epoch milliseconds).\n * Available through the Xcode 27 SDK and back-deployed to Apple 16+.\n */\n revocationDate?: (number | null);\n signedDate: number;\n /**\n * Store channel of the original app purchase: consumer, education, enterprise,\n * or another future StoreKit value (Apple 27+ beta).\n */\n storeType?: (string | null);\n}\n\n/**\n * Play Billing choice image layout (Android)\n * Available in OpenIAP Spec 2.1.0 / openiap-google 2.3.0 (requires Play Billing 9.1.0+).\n */\nexport type BillingChoiceImageLayoutAndroid = 'rectangular-four-by-one' | 'rectangular-three-by-one' | 'rectangular-two-by-two';\n\n/**\n * Display information for developer-rendered Billing Choice screens (Android)\n * Available in OpenIAP Spec 2.1.0 / openiap-google 2.3.0 (requires Play Billing 9.1.0+).\n */\nexport interface BillingChoiceInfoAndroid {\n /** URL for the Play Billing choice image matching the requested layout. */\n playBillingChoiceImageUrl: string;\n /** Play Loyalty information for the user. */\n playBillingLoyaltyInfo?: (string | null);\n}\n\n/**\n * Choice screen renderer for Billing Choice availability (Android)\n * Available in OpenIAP Spec 2.1.0 / openiap-google 2.3.0 (requires Play Billing 9.1.0+).\n */\nexport type BillingChoiceScreenTypeAndroid = 'unspecified' | 'developer-rendered' | 'google-rendered';\n\n/**\n * Billing program types for Google Play Billing Programs (Android)\n * Available in Google Play Billing Library 8.2.0 (External Offer and External Content Link\n * integrations require 8.2.1+), EXTERNAL_PAYMENTS added in 8.3.0,\n * BILLING_CHOICE added in OpenIAP Spec 2.1.0 / openiap-google 2.3.0\n * (requires Play Billing 9.1.0+).\n */\nexport type BillingProgramAndroid = 'unspecified' | 'user-choice-billing' | 'external-content-link' | 'external-offer' | 'external-payments' | 'billing-choice';\n\n/**\n * Result of checking billing program availability (Android)\n * Available in Google Play Billing Library 8.2.0+\n */\nexport interface BillingProgramAvailabilityResultAndroid {\n /** The billing program that was checked */\n billingProgram: BillingProgramAndroid;\n /**\n * Billing Choice screen renderer. Populated only for available BILLING_CHOICE results.\n * Available in OpenIAP Spec 2.1.0 / openiap-google 2.3.0.\n */\n choiceScreenType?: (BillingChoiceScreenTypeAndroid | null);\n /** Whether the billing program is available for the user */\n isAvailable: boolean;\n /**\n * Whether external-link payment is available for Billing Choice.\n * Populated only for available BILLING_CHOICE results.\n * Available in OpenIAP Spec 2.1.0 / openiap-google 2.3.0.\n */\n isExternalLinkAvailable?: (boolean | null);\n}\n\n/**\n * Parameters for showing a billing program information dialog (Android)\n * Available in OpenIAP Spec 2.1.0 / openiap-google 2.3.0 (requires Play Billing 9.1.0+).\n */\nexport interface BillingProgramInformationDialogParamsAndroid {\n /** Billing program. Currently only BILLING_CHOICE is supported. */\n billingProgram?: BillingProgramAndroid;\n /** External transaction token returned by the Billing Choice reporting-details flow. */\n externalTransactionToken: string;\n}\n\n/**\n * Reporting details for transactions made outside of Google Play Billing (Android)\n * Contains the external transaction token needed for reporting\n * Available in Google Play Billing Library 8.2.0+\n */\nexport interface BillingProgramReportingDetailsAndroid {\n /** The billing program that the reporting details are associated with */\n billingProgram: BillingProgramAndroid;\n /**\n * External transaction token used to report transactions made outside of Google Play Billing.\n * Do not cache it for a later redirect session. For External Offer, the same token may report\n * multiple purchases made during the session that generated it.\n */\n externalTransactionToken: string;\n}\n\n/**\n * Extended billing result with sub-response code (Android)\n * Available in Google Play Billing Library 8.0.0+\n */\nexport interface BillingResultAndroid {\n /** Debug message from the billing library */\n debugMessage?: (string | null);\n /** The response code from the billing operation */\n responseCode: number;\n /**\n * Sub-response code for more granular error information (8.0+).\n * Provides additional context when responseCode indicates an error.\n */\n subResponseCode?: (SubResponseCodeAndroid | null);\n}\n\n/**\n * Metadata for one auto-renewable subscription included in an Apple\n * subscription bundle (Apple 27+ beta).\n */\nexport interface BundledSubscriptionIOS {\n description: string;\n displayName: string;\n displayPrice: string;\n id: string;\n isFamilyShareable: boolean;\n price: number;\n subscriptionGroupDisplayName: string;\n subscriptionGroupId: string;\n subscriptionGroupLevel: number;\n}\n\nexport interface DeepLinkOptions {\n /** Android package name to target (required on Android) */\n packageNameAndroid?: (string | null);\n /** Android SKU to open (required on Android) */\n skuAndroid?: (string | null);\n}\n\n/**\n * Launch mode for developer billing option (Android)\n * Determines how the external payment URL is launched\n * Available in Google Play Billing Library 8.3.0+\n */\nexport type DeveloperBillingLaunchModeAndroid = 'unspecified' | 'launch-in-external-browser-or-app' | 'caller-will-launch-link';\n\n/**\n * Parameters for a developer billing option in a purchase flow (Android).\n * Used with BillingFlowParams for external payments (8.3.0+) and Billing Choice\n * (OpenIAP Spec 2.1.0 / openiap-google 2.3.0; requires Play Billing 9.1.0+).\n * Only billingProgram is required; link fields are used when the selected program\n * links outside the app.\n */\nexport interface DeveloperBillingOptionParamsAndroid {\n /** The billing program. Use EXTERNAL_PAYMENTS or BILLING_CHOICE. */\n billingProgram: BillingProgramAndroid;\n /**\n * A pre-generated external transaction token for a Billing Choice external-link\n * flow. Omit it when Google Play should provide the token in the callback.\n */\n externalTransactionToken?: (string | null);\n /**\n * The launch mode for the external payment link.\n * Required only when the selected billing program links outside the app.\n */\n launchMode?: (DeveloperBillingLaunchModeAndroid | null);\n /**\n * The URI where the external payment will be processed.\n * Required only when the selected billing program links outside the app.\n */\n linkUri?: (string | null);\n}\n\n/**\n * Developer-provided billing destination type for Billing Program reporting details (Android)\n * Available in OpenIAP Spec 2.1.0 / openiap-google 2.3.0 (requires Play Billing 9.1.0+).\n */\nexport type DeveloperBillingTypeAndroid = 'developer-billing-type-unspecified' | 'in-app' | 'external-link';\n\n/**\n * Details provided when user selects developer billing option (Android)\n * Received via DeveloperProvidedBillingListener callback\n * Available in Google Play Billing Library 8.3.0+\n */\nexport interface DeveloperProvidedBillingDetailsAndroid {\n /**\n * External transaction token used to report transactions made through developer billing.\n * Nullable for flows such as external payments where no token is returned.\n */\n externalTransactionToken?: (string | null);\n /**\n * URI to launch for an external-link Billing Choice flow, when provided by\n * Google Play.\n */\n linkUri?: (string | null);\n /**\n * Original external transaction ID when replacing a subscription that was\n * purchased through developer billing.\n */\n originalExternalTransactionId?: (string | null);\n /** Products selected for the developer billing flow. */\n products: DeveloperProvidedBillingProductAndroid[];\n}\n\n/** Product selected for developer-provided billing (Android 9.0+). */\nexport interface DeveloperProvidedBillingProductAndroid {\n /** Product identifier. */\n id: string;\n /** Subscription offer token, when applicable. */\n offerToken?: (string | null);\n /** Google Play product type (in-app or subscription). */\n type: ProductType;\n}\n\n/**\n * Discount amount details for one-time purchase offers (Android)\n * Available in Google Play Billing Library 8.0+\n */\nexport interface DiscountAmountAndroid {\n /** Discount amount in micro-units (1,000,000 = 1 unit of currency) */\n discountAmountMicros: string;\n /** Formatted discount amount with currency sign (e.g., \"$4.99\") */\n formattedDiscountAmount: string;\n}\n\n/**\n * Discount display information for one-time purchase offers (Android)\n * Available in Google Play Billing Library 8.0+\n */\nexport interface DiscountDisplayInfoAndroid {\n /**\n * Absolute discount amount details\n * Only returned for fixed amount discounts\n */\n discountAmount?: (DiscountAmountAndroid | null);\n /**\n * Percentage discount (e.g., 33 for 33% off)\n * Only returned for percentage-based discounts\n */\n percentageDiscount?: (number | null);\n}\n\n/**\n * Standardized one-time product discount offer.\n * Provides a platform-neutral OpenIAP shape for Google Play one-time product\n * purchase options and offers.\n *\n * Currently populated only on Android (Google Play Billing 8.0+).\n * iOS does not populate this type.\n *\n * @see https://openiap.dev/docs/types/discount-offer\n */\nexport interface DiscountOffer {\n /** Currency code (ISO 4217, e.g., \"USD\") */\n currency: string;\n /**\n * [Android] Fixed discount amount in micro-units.\n * Only present for fixed amount discounts.\n */\n discountAmountMicrosAndroid?: (string | null);\n /** Formatted display price string (e.g., \"$4.99\") */\n displayPrice: string;\n /** [Android] Formatted discount amount including its currency sign (e.g., \"$5.00\"). */\n formattedDiscountAmountAndroid?: (string | null);\n /**\n * [Android] Original full price in micro-units before discount.\n * Divide by 1,000,000 to get the actual price.\n * Use for displaying strikethrough original price.\n */\n fullPriceMicrosAndroid?: (string | null);\n /**\n * Unique identifier for the offer.\n * - iOS: Not applicable (one-time discounts not supported)\n * - Android: offerId from the Google Play one-time purchase option\n */\n id?: (string | null);\n /**\n * [Android] Limited quantity information.\n * Contains maximumQuantity and remainingQuantity.\n */\n limitedQuantityInfoAndroid?: (LimitedQuantityInfoAndroid | null);\n /** [Android] List of tags associated with this offer. */\n offerTagsAndroid?: (string[] | null);\n /**\n * [Android] Offer token required for purchase.\n * Must be passed to requestPurchase() when purchasing with this offer.\n */\n offerTokenAndroid?: (string | null);\n /**\n * [Android] Percentage discount (e.g., 33 for 33% off).\n * Only present for percentage-based discounts.\n */\n percentageDiscountAndroid?: (number | null);\n /**\n * [Android] Pre-order details if this is a pre-order offer.\n * Available in Google Play Billing Library 8.1.0+\n */\n preorderDetailsAndroid?: (PreorderDetailsAndroid | null);\n /** Numeric price value */\n price: number;\n /**\n * [Android] Purchase option ID for this offer.\n * Used to identify which purchase option the user selected.\n * Available in Google Play Billing Library 8.0+\n */\n purchaseOptionIdAndroid?: (string | null);\n /** [Android] Rental details if this is a rental offer. */\n rentalDetailsAndroid?: (RentalDetailsAndroid | null);\n /**\n * Offer category. DiscountOffer currently represents Android one-time product\n * offers and is populated as OneTime. Introductory and Promotional are used by\n * SubscriptionOffer.\n */\n type: DiscountOfferType;\n /**\n * [Android] Valid time window for the offer.\n * Contains startTimeMillis and endTimeMillis.\n */\n validTimeWindowAndroid?: (ValidTimeWindowAndroid | null);\n}\n\nexport interface DiscountOfferInputIOS {\n /** Discount identifier */\n identifier: string;\n /** Key identifier for validation */\n keyIdentifier: string;\n /** Cryptographic nonce */\n nonce: string;\n /** Signature for validation */\n signature: string;\n /** Timestamp of discount offer */\n timestamp: number;\n}\n\n/**\n * Discount offer type enumeration.\n * Categorizes the type of discount or promotional offer.\n */\nexport type DiscountOfferType = 'introductory' | 'promotional' | 'one-time';\n\nexport interface EntitlementIOS {\n jsonRepresentation: string;\n sku: string;\n transactionId: string;\n}\n\nexport enum ErrorCode {\n ActivityUnavailable = 'activity-unavailable',\n AlreadyOwned = 'already-owned',\n AlreadyPrepared = 'already-prepared',\n BillingResponseJsonParseError = 'billing-response-json-parse-error',\n BillingUnavailable = 'billing-unavailable',\n ConnectionClosed = 'connection-closed',\n DeferredPayment = 'deferred-payment',\n DeveloperError = 'developer-error',\n DuplicatePurchase = 'duplicate-purchase',\n EmptySkuList = 'empty-sku-list',\n FeatureNotSupported = 'feature-not-supported',\n IapNotAvailable = 'iap-not-available',\n InitConnection = 'init-connection',\n Interrupted = 'interrupted',\n ItemNotOwned = 'item-not-owned',\n ItemUnavailable = 'item-unavailable',\n NetworkError = 'network-error',\n NotEnded = 'not-ended',\n NotPrepared = 'not-prepared',\n Pending = 'pending',\n PurchaseError = 'purchase-error',\n PurchaseVerificationFailed = 'purchase-verification-failed',\n PurchaseVerificationFinishFailed = 'purchase-verification-finish-failed',\n PurchaseVerificationFinished = 'purchase-verification-finished',\n QueryProduct = 'query-product',\n RemoteError = 'remote-error',\n ServiceDisconnected = 'service-disconnected',\n ServiceError = 'service-error',\n ServiceTimeout = 'service-timeout',\n SkuNotFound = 'sku-not-found',\n SkuOfferMismatch = 'sku-offer-mismatch',\n SyncError = 'sync-error',\n TransactionValidationFailed = 'transaction-validation-failed',\n Unknown = 'unknown',\n UserCancelled = 'user-cancelled',\n UserError = 'user-error'\n}\n\n/**\n * Launch mode for external link flow (Android)\n * Determines how the external URL is launched\n * Introduced in Google Play Billing Library 8.2.0. External Offer and External Content Link\n * integrations require 8.2.1+ and fresh details immediately before every redirect session.\n */\nexport type ExternalLinkLaunchModeAndroid = 'unspecified' | 'launch-in-external-browser-or-app' | 'caller-will-launch-link';\n\n/**\n * Link type for external link flow (Android)\n * Specifies the type of external link destination\n * Available in Google Play Billing Library 8.2.0+\n */\nexport type ExternalLinkTypeAndroid = 'unspecified' | 'link-to-digital-content-offer' | 'link-to-app-download';\n\n/** Result of showing ExternalPurchaseCustomLink notice (iOS 18.1+). */\nexport interface ExternalPurchaseCustomLinkNoticeResultIOS {\n /** Whether the user chose to continue to external purchase */\n continued: boolean;\n /** Optional error message if the presentation failed */\n error?: (string | null);\n}\n\n/**\n * Notice types for ExternalPurchaseCustomLink (iOS 18.1+).\n * Determines the style of disclosure notice to display.\n * Reference: https://developer.apple.com/documentation/storekit/externalpurchasecustomlink/noticetype\n */\nexport type ExternalPurchaseCustomLinkNoticeTypeIOS = 'browser';\n\n/** Result of requesting an ExternalPurchaseCustomLink token (iOS 18.1+). */\nexport interface ExternalPurchaseCustomLinkTokenResultIOS {\n /** Optional error message if token retrieval failed */\n error?: (string | null);\n /**\n * The external purchase token string.\n * Report this token to Apple's External Purchase Server API.\n */\n token?: (string | null);\n}\n\n/**\n * Token types for ExternalPurchaseCustomLink (iOS 18.1+).\n * Used to request different types of external purchase tokens for reporting to Apple.\n * Reference: https://developer.apple.com/documentation/storekit/externalpurchasecustomlink/token(for:)\n */\nexport type ExternalPurchaseCustomLinkTokenTypeIOS = 'acquisition' | 'services';\n\n/** Result of presenting an external purchase link */\nexport interface ExternalPurchaseLinkResultIOS {\n /** Optional error message if the presentation failed */\n error?: (string | null);\n /** Whether the user completed the external purchase flow */\n success: boolean;\n}\n\n/** User actions on external purchase notice sheet (iOS 17.4+) */\nexport type ExternalPurchaseNoticeAction = 'continue' | 'dismissed';\n\n/**\n * Result of presenting external purchase notice sheet (iOS 17.4+)\n * Returns the token when user continues to external purchase.\n */\nexport interface ExternalPurchaseNoticeResultIOS {\n /** Optional error message if the presentation failed */\n error?: (string | null);\n /**\n * External purchase token returned when user continues (iOS 17.4+).\n * This token should be reported to Apple's External Purchase Server API.\n * Only present when result is Continue.\n */\n externalPurchaseToken?: (string | null);\n /** Notice result indicating user action */\n result: ExternalPurchaseNoticeAction;\n}\n\nexport type FetchProductsResult = ProductOrSubscription[] | Product[] | ProductSubscription[] | null;\n\n/**\n * Parameters for fetching Billing Choice display information (Android)\n * Available in OpenIAP Spec 2.1.0 / openiap-google 2.3.0 (requires Play Billing 9.1.0+).\n */\nexport interface GetBillingChoiceInfoParamsAndroid {\n /** Billing program. Currently only BILLING_CHOICE is supported. */\n billingProgram?: BillingProgramAndroid;\n /** Desired Play Billing choice image layout. */\n playBillingChoiceImageLayout?: BillingChoiceImageLayoutAndroid;\n /** BCP 47 locale tag. If omitted, Play Billing uses the user's default locale. */\n userLocale?: (string | null);\n}\n\nexport type IapEvent = 'purchase-updated' | 'purchase-error' | 'promoted-product-ios' | 'user-choice-billing-android' | 'developer-provided-billing-android' | 'subscription-billing-issue';\n\nexport type IapPlatform = 'ios' | 'android';\n\nexport type IapStore = 'unknown' | 'apple' | 'google' | 'horizon' | 'amazon';\n\n/** Serialization format of a public IAPKit product client payload. */\nexport type IapkitClientPayloadFormat = 'toml' | 'json' | 'text';\n\n/**\n * Public app-facing data attached to one store product in IAPKit.\n * Never place credentials, signing keys, or server-authoritative rules here.\n */\nexport interface IapkitProductClientPayload {\n body: string;\n format: IapkitClientPayloadFormat;\n updatedAt: number;\n version: number;\n}\n\n/** Unified purchase states from IAPKit verification response. */\nexport type IapkitPurchaseState = 'entitled' | 'pending-acknowledgment' | 'pending' | 'canceled' | 'expired' | 'ready-to-consume' | 'consumed' | 'unknown' | 'inauthentic';\n\n/**\n * High-level in-app message category (Android)\n * Available in OpenIAP Spec 2.1.0 / openiap-google 2.3.0\n * (upstream API available since Play Billing 4.1.0).\n */\nexport type InAppMessageCategoryAndroid = 'unknown-in-app-message-category-id' | 'transactional';\n\n/**\n * Parameters for showing Play billing in-app messages (Android)\n * Available in OpenIAP Spec 2.1.0 / openiap-google 2.3.0\n * (upstream API available since Play Billing 4.1.0).\n */\nexport interface InAppMessageParamsAndroid {\n /** In-app message categories to show. Defaults to transactional messages. */\n categories?: (InAppMessageCategoryAndroid[] | null);\n}\n\n/**\n * Response code from Play billing in-app messages (Android)\n * Available in OpenIAP Spec 2.1.0 / openiap-google 2.3.0\n * (upstream API available since Play Billing 4.1.0).\n */\nexport type InAppMessageResponseCodeAndroid = 'no-action-needed' | 'subscription-status-updated';\n\n/**\n * Result from showing Play billing in-app messages (Android)\n * Available in OpenIAP Spec 2.1.0 / openiap-google 2.3.0\n * (upstream API available since Play Billing 4.1.0).\n */\nexport interface InAppMessageResultAndroid {\n /** Purchase token returned when a subscription status changed. */\n purchaseToken?: (string | null);\n /** Response code for the in-app messaging flow. */\n responseCode: InAppMessageResponseCodeAndroid;\n}\n\n/** Connection initialization configuration */\nexport interface InitConnectionConfig {\n /**\n * Billing Choice renderer configured in Play Console. Available in OpenIAP\n * Spec 2.1.0 / openiap-google 2.3.0 (requires Play Billing 9.1.0+).\n * GOOGLE_RENDERED registers the developer-provided billing listener so OpenIAP\n * can emit the selection event. DEVELOPER_RENDERED omits that listener so the\n * app can render its own choice screen and use the reporting/dialog/link APIs.\n * Must match choiceScreenType returned by isBillingProgramAvailableAndroid.\n * Defaults to GOOGLE_RENDERED.\n */\n billingChoiceScreenTypeAndroid?: (BillingChoiceScreenTypeAndroid | null);\n /**\n * Enable a specific billing program for Android (7.0+)\n * When set, enables the specified billing program for external transactions.\n * - USER_CHOICE_BILLING: User can select between Google Play or alternative (7.0+)\n * - EXTERNAL_CONTENT_LINK: Link to external content (introduced in 8.2.0; use 8.2.1+)\n * - EXTERNAL_OFFER: External offers for digital content (introduced in 8.2.0; use 8.2.1+)\n * - EXTERNAL_PAYMENTS: Developer provided billing, Japan only (8.3.0+)\n * - BILLING_CHOICE: Google-rendered or developer-rendered billing choice\n * (OpenIAP Spec 2.1.0 / openiap-google 2.3.0; requires Play Billing 9.1.0+)\n */\n enableBillingProgramAndroid?: (BillingProgramAndroid | null);\n}\n\n/**\n * Installment plan details for subscription offers (Android)\n * Contains information about the installment plan commitment.\n * Available in Google Play Billing Library 7.0+\n */\nexport interface InstallmentPlanDetailsAndroid {\n /**\n * Committed payments count after a user signs up for this subscription plan.\n * For example, for a monthly subscription with commitmentPaymentsCount of 12,\n * users will be charged monthly for 12 months after signup.\n */\n commitmentPaymentsCount: number;\n /**\n * Subsequent committed payments count after the subscription plan renews.\n * For example, for a monthly subscription with subsequentCommitmentPaymentsCount of 12,\n * users will be committed to another 12 monthly payments when the plan renews.\n * Returns 0 if the installment plan has no subsequent commitment (reverts to normal plan).\n */\n subsequentCommitmentPaymentsCount: number;\n}\n\n/**\n * Parameters for launching an external link (Android)\n * Used with launchExternalLink to initiate external offer, app install, or\n * developer-rendered Billing Choice flows\n * Available in Google Play Billing Library 8.2.0+\n */\nexport interface LaunchExternalLinkParamsAndroid {\n /** The billing program (EXTERNAL_CONTENT_LINK, EXTERNAL_OFFER, or BILLING_CHOICE) */\n billingProgram: BillingProgramAndroid;\n /**\n * External transaction token for a developer-rendered Billing Choice external-link\n * flow. Available in OpenIAP Spec 2.1.0 / openiap-google 2.3.0\n * (requires Play Billing 9.1.0+). Generate it with createBillingProgramReportingDetailsAndroid.\n */\n externalTransactionToken?: (string | null);\n /** The external link launch mode */\n launchMode: ExternalLinkLaunchModeAndroid;\n /** The type of the external link */\n linkType: ExternalLinkTypeAndroid;\n /** The URI where the content will be accessed from */\n linkUri: string;\n}\n\n/**\n * Limited quantity information for one-time purchase offers (Android)\n * Available in Google Play Billing Library 8.0+\n */\nexport interface LimitedQuantityInfoAndroid {\n /** Maximum quantity a user can purchase */\n maximumQuantity: number;\n /** Remaining quantity the user can still purchase */\n remainingQuantity: number;\n}\n\nexport interface Mutation {\n /**\n * Acknowledge a non-consumable purchase. Required within 3 days or Google auto-refunds.\n * See: https://openiap.dev/docs/apis/android/acknowledge-purchase-android\n */\n acknowledgePurchaseAndroid: Promise<boolean>;\n /**\n * Present the refund request sheet (iOS 15+). See also Features → Refund.\n * See: https://openiap.dev/docs/apis/ios/begin-refund-request-ios\n */\n beginRefundRequestIOS?: Promise<(string | null)>;\n /**\n * Clear pending transactions in the queue (sandbox helper).\n * See: https://openiap.dev/docs/apis/ios/clear-transaction-ios\n */\n clearTransactionIOS: Promise<boolean>;\n /**\n * Consume a consumable purchase so it can be re-bought.\n * See: https://openiap.dev/docs/apis/android/consume-purchase-android\n */\n consumePurchaseAndroid: Promise<boolean>;\n /**\n * Create the reporting details and external transaction token required by a billing program.\n * Introduced in Play Billing 8.2.0. External Offer and External Content Link integrations\n * must use 8.2.1+ and create fresh details immediately before every redirect session;\n * do not cache the token for a later redirect. The same token may report multiple purchases\n * made during one External Offer session.\n * Replaces the deprecated createExternalOfferReportingDetailsAsync API.\n * Returns external transaction token needed for reporting external transactions.\n * developerBillingType is optional. When program is BILLING_CHOICE and developerBillingType is omitted,\n * native Android defaults it to IN_APP.\n * The Billing Choice extension is available in OpenIAP Spec 2.1.0 /\n * openiap-google 2.3.0 (requires Play Billing 9.1.0+).\n * Throws OpenIapError.NotPrepared if billing client not ready.\n * See: https://openiap.dev/docs/apis/android/create-billing-program-reporting-details-android\n */\n createBillingProgramReportingDetailsAndroid: Promise<BillingProgramReportingDetailsAndroid>;\n /**\n * Open the platform's subscription management UI.\n * See: https://openiap.dev/docs/apis/deep-link-to-subscriptions\n */\n deepLinkToSubscriptions: Promise<void>;\n /**\n * Close the store connection and release resources.\n * See: https://openiap.dev/docs/apis/end-connection\n */\n endConnection: Promise<boolean>;\n /**\n * Complete a transaction after server-side verification. Required on Android within 3 days.\n * See: https://openiap.dev/docs/apis/finish-transaction\n */\n finishTransaction: Promise<void>;\n /**\n * Initialize the store connection. Call before any IAP API.\n * See: https://openiap.dev/docs/apis/init-connection\n */\n initConnection: Promise<boolean>;\n /**\n * Check whether a billing program (e.g., External Payments) is available for the current user.\n * Replaces the deprecated isExternalOfferAvailableAsync API.\n * Introduced in Google Play Billing Library 8.2.0. External Offer and External\n * Content Link integrations must use 8.2.1+ because 8.2.1 fixes this API.\n * Returns availability result with isAvailable flag.\n * Throws OpenIapError.NotPrepared if billing client not ready.\n * See: https://openiap.dev/docs/apis/android/is-billing-program-available-android\n */\n isBillingProgramAvailableAndroid: Promise<BillingProgramAvailabilityResultAndroid>;\n /**\n * Launch an external content/offer link from inside the Billing Programs flow (introduced in\n * Play Billing 8.2.0; External Offer and External Content Link require 8.2.1+),\n * including developer-rendered Billing Choice external-link flows.\n * Billing Choice availability: OpenIAP Spec 2.1.0 / openiap-google 2.3.0\n * (requires Play Billing 9.1.0+).\n * Replaces the deprecated showExternalOfferInformationDialog API.\n * Shows Play Store dialog and optionally launches external URL.\n * Throws OpenIapError.NotPrepared if billing client not ready.\n * See: https://openiap.dev/docs/apis/android/launch-external-link-android\n */\n launchExternalLinkAndroid: Promise<boolean>;\n /**\n * Open the Google Play offer/promo code redemption flow so the user can enter a code.\n * On Google Play builds, launches the Play Store redeem page\n * (https://play.google.com/redeem). A purchase listener can receive the redeemed\n * purchase while the app is running with an active billing connection; always\n * reconcile with getAvailablePurchases when the app resumes.\n * Does not require the billing client to be initialized (no Play Billing version requirement).\n * Available in OpenIAP Spec 2.4.2 / openiap-google 2.5.0.\n * Android counterpart of presentCodeRedemptionSheetIOS.\n * Returns true when the redemption flow was launched, or false when the current\n * store flavor does not provide an equivalent redemption flow.\n * See: https://openiap.dev/docs/apis/android/open-redeem-offer-code-android\n */\n openRedeemOfferCodeAndroid: Promise<boolean>;\n /**\n * Show the App Store offer code redemption sheet.\n * On iOS 27+, Mac Catalyst 27+, and visionOS 27+, returns the verified\n * transaction produced by the redemption. Earlier iOS and Mac Catalyst\n * versions present the legacy sheet and return null; reconcile purchases\n * through the normal transaction listener or an explicit available-purchases\n * refresh.\n * See: https://openiap.dev/docs/apis/ios/present-code-redemption-sheet-ios\n */\n presentCodeRedemptionSheetIOS?: Promise<(PurchaseIOS | null)>;\n /**\n * Present an external purchase link, StoreKit External (iOS 16+).\n * See: https://openiap.dev/docs/apis/ios/present-external-purchase-link-ios\n */\n presentExternalPurchaseLinkIOS: Promise<ExternalPurchaseLinkResultIOS>;\n /**\n * Present the external purchase notice sheet (iOS 17.4+).\n * Uses ExternalPurchase.presentNoticeSheet() which returns a token when the user continues.\n * Reference: https://developer.apple.com/documentation/storekit/externalpurchase/presentnoticesheet()\n * See: https://openiap.dev/docs/apis/ios/present-external-purchase-notice-sheet-ios\n */\n presentExternalPurchaseNoticeSheetIOS: Promise<ExternalPurchaseNoticeResultIOS>;\n /**\n * Initiate a purchase or subscription flow; rely on events for final state.\n * See: https://openiap.dev/docs/apis/request-purchase\n */\n requestPurchase?: Promise<(Purchase | Purchase[] | null)>;\n /**\n * Restore non-consumable and active subscription purchases.\n * See: https://openiap.dev/docs/apis/restore-purchases\n */\n restorePurchases: Promise<void>;\n /**\n * Show Google's mandatory information dialog before a developer-rendered,\n * in-app Billing Choice screen.\n * OpenIAP availability: Spec 2.1.0 / openiap-google 2.3.0 (requires Play Billing 9.1.0+).\n * Throws OpenIapError.NotPrepared if billing client not ready.\n * See: https://openiap.dev/docs/apis/android/show-billing-program-information-dialog-android\n */\n showBillingProgramInformationDialogAndroid: Promise<BillingResultAndroid>;\n /**\n * Present the disclosure sheet required before linking out via ExternalPurchaseCustomLink (iOS 18.1+).\n * Call this after a deliberate customer interaction before linking out to external purchases.\n * Reference: https://developer.apple.com/documentation/storekit/externalpurchasecustomlink/shownotice(type:)\n * See: https://openiap.dev/docs/apis/ios/show-external-purchase-custom-link-notice-ios\n */\n showExternalPurchaseCustomLinkNoticeIOS: Promise<ExternalPurchaseCustomLinkNoticeResultIOS>;\n /**\n * Overlay Play billing in-app messages, such as payment issues or subscription price-change confirmations.\n * OpenIAP availability: Spec 2.1.0 / openiap-google 2.3.0\n * (upstream API available since Play Billing 4.1.0).\n * Returns a response code and, when the subscription status changes, the related purchase token.\n * Throws OpenIapError.NotPrepared if billing client not ready.\n * See: https://openiap.dev/docs/apis/android/show-in-app-messages-android\n */\n showInAppMessagesAndroid: Promise<InAppMessageResultAndroid>;\n /**\n * Present the manage-subscriptions sheet and return changed purchases (iOS 15+).\n * See: https://openiap.dev/docs/apis/ios/show-manage-subscriptions-ios\n */\n showManageSubscriptionsIOS: Promise<PurchaseIOS[]>;\n /**\n * Force sync transactions with the App Store (iOS 15+).\n * See: https://openiap.dev/docs/apis/ios/sync-ios\n */\n syncIOS: Promise<boolean>;\n /**\n * Verify a purchase against your own backend. Returns a platform-specific\n * variant of VerifyPurchaseResult — VerifyPurchaseResultIOS exposes isValid\n * + receipt/JWS metadata, VerifyPurchaseResultAndroid carries Play Store\n * receipt fields (no isValid), and VerifyPurchaseResultHorizon uses success.\n * Inspect the concrete variant before reading fields.\n * See: https://openiap.dev/docs/features/validation#verify-purchase\n */\n verifyPurchase: Promise<VerifyPurchaseResult>;\n /**\n * Verify via a managed provider without standing up your own server. The\n * PurchaseVerificationProvider enum currently exposes only IAPKit; platform\n * availability may differ by implementation.\n * See: https://openiap.dev/docs/features/validation#verify-purchase-with-provider\n */\n verifyPurchaseWithProvider: Promise<VerifyPurchaseWithProviderResult>;\n}\n\nexport type MutationAcknowledgePurchaseAndroidArgs = string;\n\nexport type MutationBeginRefundRequestIosArgs = string;\n\nexport type MutationConsumePurchaseAndroidArgs = string;\n\nexport interface MutationCreateBillingProgramReportingDetailsAndroidArgs {\n developerBillingType?: (DeveloperBillingTypeAndroid | null);\n program: BillingProgramAndroid;\n}\n\nexport type MutationDeepLinkToSubscriptionsArgs = (DeepLinkOptions | null) | undefined;\n\nexport interface MutationFinishTransactionArgs {\n isConsumable?: (boolean | null);\n purchase: PurchaseInput;\n}\n\nexport type MutationInitConnectionArgs = (InitConnectionConfig | null) | undefined;\n\nexport type MutationIsBillingProgramAvailableAndroidArgs = BillingProgramAndroid;\n\nexport type MutationLaunchExternalLinkAndroidArgs = LaunchExternalLinkParamsAndroid;\n\nexport type MutationPresentExternalPurchaseLinkIosArgs = string;\n\nexport type MutationRequestPurchaseArgs = RequestPurchaseProps;\n\nexport type MutationShowBillingProgramInformationDialogAndroidArgs = BillingProgramInformationDialogParamsAndroid;\n\nexport type MutationShowExternalPurchaseCustomLinkNoticeIosArgs = ExternalPurchaseCustomLinkNoticeTypeIOS;\n\nexport type MutationShowInAppMessagesAndroidArgs = (InAppMessageParamsAndroid | null) | undefined;\n\nexport type MutationVerifyPurchaseArgs = VerifyPurchaseProps;\n\nexport type MutationVerifyPurchaseWithProviderArgs = VerifyPurchaseWithProviderProps;\n\n/**\n * Payment mode for subscription offers.\n * Determines how the user pays during the offer period.\n */\nexport type PaymentMode = 'free-trial' | 'pay-as-you-go' | 'pay-up-front' | 'unknown';\n\nexport type PaymentModeIOS = 'empty' | 'free-trial' | 'pay-as-you-go' | 'pay-up-front';\n\n/**\n * Pending purchase update for subscription upgrades/downgrades (Android)\n * When a user initiates a subscription change (upgrade/downgrade), the new purchase\n * may be pending until the current billing period ends. This type contains the\n * details of the pending change.\n * Available in Google Play Billing Library 5.0+\n */\nexport interface PendingPurchaseUpdateAndroid {\n /**\n * Product IDs for the pending purchase update.\n * These are the new products the user is switching to.\n */\n products: string[];\n /**\n * Purchase token for the pending transaction.\n * Use this token to track or manage the pending purchase update.\n */\n purchaseToken: string;\n}\n\n/**\n * Pre-order details for one-time purchase products (Android)\n * Available in Google Play Billing Library 8.1.0+\n */\nexport interface PreorderDetailsAndroid {\n /**\n * Pre-order presale end time in milliseconds since epoch.\n * This is when the presale period ends and the product will be released.\n */\n preorderPresaleEndTimeMillis: string;\n /**\n * Pre-order release time in milliseconds since epoch.\n * This is when the product will be available to users who pre-ordered.\n */\n preorderReleaseTimeMillis: string;\n}\n\nexport interface PricingPhaseAndroid {\n billingCycleCount: number;\n billingPeriod: string;\n formattedPrice: string;\n priceAmountMicros: string;\n priceCurrencyCode: string;\n recurrenceMode: number;\n}\n\nexport interface PricingPhasesAndroid {\n pricingPhaseList: PricingPhaseAndroid[];\n}\n\nexport type Product = ProductAndroid | ProductIOS;\n\nexport interface ProductAndroid extends ProductCommon {\n currency: string;\n debugDescription?: (string | null);\n description: string;\n /**\n * Standardized Android one-time product purchase options and offers.\n * Native metadata uses Android-suffixed fields.\n * @see https://openiap.dev/docs/types/discount-offer\n */\n discountOffers?: (DiscountOffer[] | null);\n displayName?: (string | null);\n displayPrice: string;\n id: string;\n nameAndroid: string;\n platform: 'android';\n price?: (number | null);\n /**\n * Product-level status code indicating fetch result (Android 8.0+)\n * OK = product fetched successfully\n * NOT_FOUND = SKU doesn't exist\n * NO_OFFERS_AVAILABLE = user not eligible for any offers\n * Available in Google Play Billing Library 8.0.0+\n */\n productStatusAndroid?: (ProductStatusAndroid | null);\n /**\n * Standardized subscription offers.\n * Cross-platform type with Android-specific fields using suffix.\n * @see https://openiap.dev/docs/types/subscription-offer\n */\n subscriptionOffers?: (SubscriptionOffer[] | null);\n title: string;\n type: 'in-app';\n}\n\nexport interface ProductCommon {\n currency: string;\n debugDescription?: (string | null);\n description: string;\n displayName?: (string | null);\n displayPrice: string;\n id: string;\n platform: 'android' | 'ios';\n price?: (number | null);\n title: string;\n type: 'in-app' | 'subs';\n} \n\nexport interface ProductIOS extends ProductCommon {\n currency: string;\n debugDescription?: (string | null);\n description: string;\n displayName?: (string | null);\n displayNameIOS: string;\n displayPrice: string;\n id: string;\n isFamilyShareableIOS: boolean;\n jsonRepresentationIOS: string;\n platform: 'ios';\n price?: (number | null);\n /**\n * iOS 26.4+ subscription pricing terms, including billing plan metadata for\n * monthly subscriptions with a 12-month commitment.\n */\n pricingTermsIOS?: (SubscriptionPricingTermsIOS[] | null);\n /**\n * Standardized subscription offers.\n * Cross-platform type with iOS-specific fields using suffix.\n * Note: iOS does not support one-time product discounts.\n * @see https://openiap.dev/docs/types/subscription-offer\n */\n subscriptionOffers?: (SubscriptionOffer[] | null);\n title: string;\n type: 'in-app';\n typeIOS: ProductTypeIOS;\n}\n\nexport type ProductOrSubscription = Product | ProductSubscription;\n\nexport type ProductQueryType = 'in-app' | 'subs' | 'all';\n\nexport interface ProductRequest {\n skus: string[];\n type?: (ProductQueryType | null);\n}\n\n/**\n * Status code for individual products returned from queryProductDetailsAsync (Android)\n * Prior to 8.0, products that couldn't be fetched were simply not returned.\n * With 8.0+, these products are returned with a status code explaining why.\n * Available in Google Play Billing Library 8.0.0+\n */\nexport type ProductStatusAndroid = 'ok' | 'not-found' | 'no-offers-available' | 'unknown';\n\nexport type ProductSubscription = ProductSubscriptionAndroid | ProductSubscriptionIOS;\n\nexport interface ProductSubscriptionAndroid extends ProductCommon {\n currency: string;\n debugDescription?: (string | null);\n description: string;\n displayName?: (string | null);\n displayPrice: string;\n id: string;\n nameAndroid: string;\n platform: 'android';\n price?: (number | null);\n /**\n * Product-level status code indicating fetch result (Android 8.0+)\n * OK = product fetched successfully\n * NOT_FOUND = SKU doesn't exist\n * NO_OFFERS_AVAILABLE = user not eligible for any offers\n * Available in Google Play Billing Library 8.0.0+\n */\n productStatusAndroid?: (ProductStatusAndroid | null);\n /**\n * Standardized subscription offers.\n * Cross-platform type with Android-specific fields using suffix.\n * @see https://openiap.dev/docs/types/subscription-offer\n */\n subscriptionOffers: SubscriptionOffer[];\n title: string;\n type: 'subs';\n}\n\nexport interface ProductSubscriptionIOS extends ProductCommon {\n /**\n * Subscriptions included in this Apple subscription bundle. Empty or null for\n * every other product type (Apple 27+ beta).\n */\n bundledSubscriptionsIOS?: (BundledSubscriptionIOS[] | null);\n currency: string;\n debugDescription?: (string | null);\n description: string;\n displayName?: (string | null);\n displayNameIOS: string;\n displayPrice: string;\n id: string;\n introductoryPriceAsAmountIOS?: (string | null);\n introductoryPriceIOS?: (string | null);\n introductoryPriceNumberOfPeriodsIOS?: (string | null);\n introductoryPricePaymentModeIOS: PaymentModeIOS;\n introductoryPriceSubscriptionPeriodIOS?: (SubscriptionPeriodIOS | null);\n isFamilyShareableIOS: boolean;\n jsonRepresentationIOS: string;\n platform: 'ios';\n price?: (number | null);\n /**\n * iOS 26.4+ subscription pricing terms, including billing plan metadata for\n * monthly subscriptions with a 12-month commitment.\n */\n pricingTermsIOS?: (SubscriptionPricingTermsIOS[] | null);\n /** App Store subscription group identifier for intro-offer eligibility checks. */\n subscriptionGroupIdIOS?: (string | null);\n /**\n * Standardized subscription offers.\n * Cross-platform type with iOS-specific fields using suffix.\n * @see https://openiap.dev/docs/types/subscription-offer\n */\n subscriptionOffers?: (SubscriptionOffer[] | null);\n subscriptionPeriodNumberIOS?: (string | null);\n subscriptionPeriodUnitIOS?: (SubscriptionPeriodIOS | null);\n title: string;\n type: 'subs';\n typeIOS: ProductTypeIOS;\n}\n\nexport type ProductType = 'in-app' | 'subs';\n\nexport type ProductTypeIOS = 'consumable' | 'non-consumable' | 'auto-renewable-subscription' | 'non-renewing-subscription' | 'subscription-bundle' | 'subscription-suite';\n\n/**\n * JWS promotional offer input for iOS 15+ (StoreKit 2, WWDC 2025).\n * New signature format using compact JWS string for promotional offers.\n * This provides a simpler alternative to the legacy signature-based promotional offers.\n * Back-deployed to iOS 15.\n */\nexport interface PromotionalOfferJwsInputIOS {\n /**\n * Compact JWS string signed by your server.\n * The JWS should contain the promotional offer signature data.\n * Format: header.payload.signature (base64url encoded)\n */\n jws: string;\n /** The promotional offer identifier from App Store Connect */\n offerId: string;\n}\n\nexport type Purchase = PurchaseAndroid | PurchaseIOS;\n\nexport interface PurchaseAndroid extends PurchaseCommon {\n autoRenewingAndroid?: (boolean | null);\n currentPlanId?: (string | null);\n dataAndroid?: (string | null);\n developerPayloadAndroid?: (string | null);\n id: string;\n ids?: (string[] | null);\n isAcknowledgedAndroid?: (boolean | null);\n isAutoRenewing: boolean;\n /**\n * Whether the subscription is suspended (Android)\n * A suspended subscription means the user's payment method failed and they need to fix it.\n * Users should be directed to the subscription center to resolve the issue.\n * Do NOT grant entitlements for suspended subscriptions.\n * Available in Google Play Billing Library 8.1.0+\n */\n isSuspendedAndroid?: (boolean | null);\n obfuscatedAccountIdAndroid?: (string | null);\n obfuscatedProfileIdAndroid?: (string | null);\n packageNameAndroid?: (string | null);\n /**\n * Pending purchase update for uncommitted subscription upgrade/downgrade (Android)\n * Contains the new products and purchase token for the pending transaction.\n * Returns null if no pending update exists.\n * Available in Google Play Billing Library 5.0+\n */\n pendingPurchaseUpdateAndroid?: (PendingPurchaseUpdateAndroid | null);\n productId: string;\n purchaseState: PurchaseState;\n purchaseToken?: (string | null);\n quantity: number;\n signatureAndroid?: (string | null);\n /** Store where purchase was made */\n store: IapStore;\n /** Unix timestamp in milliseconds since January 1, 1970 UTC. */\n transactionDate: number;\n transactionId?: (string | null);\n /**\n * Amazon Appstore user id (PurchaseResponse.getUserData().getUserId()).\n * Only populated on the Amazon flavor; required for server-side Amazon RVS\n * receipt verification (userId + receiptId). Null on Google Play and Horizon.\n */\n userIdAmazon?: (string | null);\n /**\n * Amazon Appstore marketplace (PurchaseResponse.getUserData().getMarketplace()),\n * for example \"US\" or \"FR\". Only populated on the Amazon flavor.\n */\n userMarketplaceAmazon?: (string | null);\n}\n\nexport interface PurchaseCommon {\n /**\n * The current plan identifier. This is:\n * - On Android: the basePlanId (e.g., \"premium\", \"premium-year\")\n * - On iOS: the productId (e.g., \"com.example.premium_monthly\", \"com.example.premium_yearly\")\n * This provides a unified way to identify which specific plan/tier the user is subscribed to.\n */\n currentPlanId?: (string | null);\n id: string;\n ids?: (string[] | null);\n isAutoRenewing: boolean;\n productId: string;\n purchaseState: PurchaseState;\n /** Unified purchase token (iOS JWS, Android purchaseToken) */\n purchaseToken?: (string | null);\n quantity: number;\n /** Store where purchase was made */\n store: IapStore;\n /** Unix timestamp in milliseconds since January 1, 1970 UTC. */\n transactionDate: number;\n}\n\nexport interface PurchaseError {\n code: ErrorCode;\n debugMessage?: (string | null);\n isEmptyProductList?: (boolean | null);\n message: string;\n productId?: (string | null);\n productIds?: (string[] | null);\n productType?: (string | null);\n responseCode?: (number | null);\n subResponseCodeAndroid?: (SubResponseCodeAndroid | null);\n}\n\nexport interface PurchaseIOS extends PurchaseCommon {\n /**\n * Advanced Commerce API metadata (iOS 18.4+).\n * Present only for transactions that use the Advanced Commerce API.\n * Contains item details, tax information, and refund data for generic SKU purchases.\n */\n advancedCommerceInfoIOS?: (AdvancedCommerceInfoIOS | null);\n appAccountToken?: (string | null);\n appBundleIdIOS?: (string | null);\n /** iOS 26.4+ billing plan selected for this transaction. */\n billingPlanTypeIOS?: (SubscriptionBillingPlanTypeIOS | null);\n /**\n * Original transaction identifier for the subscription bundle that produced\n * this transaction (Apple 27+ SDK; back-deployed by StoreKit).\n */\n bundleOriginalTransactionIdIOS?: (string | null);\n /** Product identifier of the subscription bundle that produced this transaction. */\n bundleProductIdIOS?: (string | null);\n /** Subscription-group identifier of the bundle that produced this transaction. */\n bundleSubscriptionGroupIdIOS?: (string | null);\n /** Bundle transaction identifier associated with this component transaction. */\n bundleTransactionIdIOS?: (string | null);\n /** iOS 26.4+ progress information for monthly subscriptions with a 12-month commitment. */\n commitmentInfoIOS?: (TransactionCommitmentInfoIOS | null);\n countryCodeIOS?: (string | null);\n currencyCodeIOS?: (string | null);\n currencySymbolIOS?: (string | null);\n currentPlanId?: (string | null);\n environmentIOS?: (string | null);\n expirationDateIOS?: (number | null);\n id: string;\n ids?: (string[] | null);\n isAutoRenewing: boolean;\n isUpgradedIOS?: (boolean | null);\n offerIOS?: (PurchaseOfferIOS | null);\n originalTransactionDateIOS?: (number | null);\n originalTransactionIdentifierIOS?: (string | null);\n /** StoreKit ownership raw value. Xcode 27 adds the back-deployed assigned value. */\n ownershipTypeIOS?: (string | null);\n /**\n * Original transaction identifier replaced when moving between a standalone\n * subscription and a subscription bundle.\n */\n previousOriginalTransactionIdIOS?: (string | null);\n productId: string;\n purchaseState: PurchaseState;\n purchaseToken?: (string | null);\n quantity: number;\n quantityIOS?: (number | null);\n reasonIOS?: (string | null);\n reasonStringRepresentationIOS?: (string | null);\n renewalInfoIOS?: (RenewalInfoIOS | null);\n revocationDateIOS?: (number | null);\n /** Normalized StoreKit revocation reason, including upgraded_to_bundle. */\n revocationReasonIOS?: (string | null);\n /**\n * StoreKit revocation type, including assignment-revocation on Apple 26.4+\n * when compiled with the Xcode 27 SDK.\n */\n revocationTypeIOS?: (string | null);\n /** Store where purchase was made */\n store: IapStore;\n storefrontCountryCodeIOS?: (string | null);\n subscriptionGroupIdIOS?: (string | null);\n /** Unix timestamp in milliseconds since January 1, 1970 UTC. */\n transactionDate: number;\n transactionId: string;\n transactionReasonIOS?: (string | null);\n webOrderLineItemIdIOS?: (string | null);\n}\n\nexport type PurchaseInput = Purchase;\n\nexport interface PurchaseOfferIOS {\n id: string;\n paymentMode: string;\n type: string;\n}\n\nexport interface PurchaseOptions {\n /** Also emit results through the iOS event listeners */\n alsoPublishToEventListenerIOS?: (boolean | null);\n /**\n * Include suspended subscriptions in the result (Android 8.1+).\n * Suspended subscriptions have isSuspendedAndroid=true and should NOT be granted entitlements.\n * Users should be directed to the subscription center to resolve payment issues.\n * Default: false (only active subscriptions are returned)\n */\n includeSuspendedAndroid?: (boolean | null);\n /** Limit to currently active items on iOS */\n onlyIncludeActiveItemsIOS?: (boolean | null);\n}\n\nexport type PurchaseState = 'pending' | 'purchased' | 'unknown';\n\nexport interface PurchaseUpdatedListenerOptions {\n /**\n * iOS only. Defaults to true. When false, listener callbacks also receive\n * StoreKit replay events for a transaction ID that was already emitted during\n * the current connection session. Android ignores this option.\n */\n dedupeTransactionIOS?: (boolean | null);\n}\n\nexport type PurchaseVerificationProvider = 'iapkit';\n\nexport interface Query {\n /**\n * Check eligibility for the external purchase notice sheet (iOS 17.4+).\n * Uses ExternalPurchase.canPresent.\n * See: https://openiap.dev/docs/apis/ios/can-present-external-purchase-notice-ios\n */\n canPresentExternalPurchaseNoticeIOS: Promise<boolean>;\n /**\n * Get the user's current entitlement for a product, using StoreKit 2 (iOS 15+).\n * See: https://openiap.dev/docs/apis/ios/current-entitlement-ios\n */\n currentEntitlementIOS?: Promise<(PurchaseIOS | null)>;\n /**\n * Fetch products or subscriptions from the store.\n * See: https://openiap.dev/docs/apis/fetch-products\n */\n fetchProducts: Promise<(ProductOrSubscription[] | Product[] | ProductSubscription[] | null)>;\n /**\n * Get details of all currently active subscriptions (filters by subscriptionIds when provided).\n * See: https://openiap.dev/docs/apis/get-active-subscriptions\n */\n getActiveSubscriptions: Promise<ActiveSubscription[]>;\n /**\n * List every StoreKit transaction (finished + unfinished) for the current user.\n * Requires the SKIncludeConsumableInAppPurchaseHistory Info.plist key in the host app\n * for finished consumables to be included (iOS 18+).\n * Unlike getAvailablePurchases, always returns the iOS-specific PurchaseIOS shape.\n * See: https://openiap.dev/docs/apis/ios/get-all-transactions-ios\n */\n getAllTransactionsIOS: Promise<PurchaseIOS[]>;\n /**\n * Fetch the app transaction (iOS 16+).\n * See: https://openiap.dev/docs/apis/ios/get-app-transaction-ios\n */\n getAppTransactionIOS?: Promise<(AppTransaction | null)>;\n /**\n * List active purchases for the current user.\n * See: https://openiap.dev/docs/apis/get-available-purchases\n */\n getAvailablePurchases: Promise<Purchase[]>;\n /**\n * Fetch Play Billing assets and loyalty text for developer-rendered Billing Choice screens.\n * OpenIAP availability: Spec 2.1.0 / openiap-google 2.3.0 (requires Play Billing 9.1.0+).\n * Throws OpenIapError.NotPrepared if billing client is not ready.\n * See: https://openiap.dev/docs/apis/android/get-billing-choice-info-android\n */\n getBillingChoiceInfoAndroid: Promise<BillingChoiceInfoAndroid>;\n /**\n * Fetch a token for Apple's External Purchase Server reporting API (iOS 18.1+).\n * Use this token to report transactions made through ExternalPurchaseCustomLink.\n * Reference: https://developer.apple.com/documentation/storekit/externalpurchasecustomlink/token(for:)\n * See: https://openiap.dev/docs/apis/ios/get-external-purchase-custom-link-token-ios\n */\n getExternalPurchaseCustomLinkTokenIOS: Promise<ExternalPurchaseCustomLinkTokenResultIOS>;\n /**\n * List unfinished StoreKit transactions in the queue.\n * See: https://openiap.dev/docs/apis/ios/get-pending-transactions-ios\n */\n getPendingTransactionsIOS: Promise<PurchaseIOS[]>;\n /**\n * Read the App Store-promoted product, if any (iOS 11+).\n * See: https://openiap.dev/docs/apis/ios/get-promoted-product-ios\n */\n getPromotedProductIOS?: Promise<(ProductIOS | null)>;\n /**\n * Get base64-encoded receipt data (legacy validation).\n * See: https://openiap.dev/docs/apis/ios/get-receipt-data-ios\n */\n getReceiptDataIOS?: Promise<(string | null)>;\n /**\n * Return the store-authoritative country code: ISO 3166-1 alpha-3 on Apple\n * platforms and alpha-2 on Android. The operation fails when the store cannot\n * provide a value; implementations must not synthesize a locale fallback.\n * See: https://openiap.dev/docs/apis/get-storefront\n */\n getStorefront: Promise<string>;\n /**\n * Return the JWS string for a transaction (StoreKit 2).\n * See: https://openiap.dev/docs/apis/ios/get-transaction-jws-ios\n */\n getTransactionJwsIOS?: Promise<(string | null)>;\n /**\n * Check whether the user has any active subscription.\n * See: https://openiap.dev/docs/apis/has-active-subscriptions\n */\n hasActiveSubscriptions: Promise<boolean>;\n /**\n * Check eligibility for the custom-link variant of external purchase (iOS 18.1+).\n * Returns true if the app can use custom external purchase links.\n * Reference: https://developer.apple.com/documentation/storekit/externalpurchasecustomlink/iseligible\n * See: https://openiap.dev/docs/apis/ios/is-eligible-for-external-purchase-custom-link-ios\n */\n isEligibleForExternalPurchaseCustomLinkIOS: Promise<boolean>;\n /**\n * Check intro-offer eligibility for a subscription group.\n * See: https://openiap.dev/docs/apis/ios/is-eligible-for-intro-offer-ios\n */\n isEligibleForIntroOfferIOS: Promise<boolean>;\n /**\n * Check whether a transaction's JWS verification passed (StoreKit 2).\n * See: https://openiap.dev/docs/apis/ios/is-transaction-verified-ios\n */\n isTransactionVerifiedIOS: Promise<boolean>;\n /**\n * Get the latest verified transaction for a product, using StoreKit 2.\n * See: https://openiap.dev/docs/apis/ios/latest-transaction-ios\n */\n latestTransactionIOS?: Promise<(PurchaseIOS | null)>;\n /**\n * Get subscription status objects from StoreKit 2 (iOS 15+).\n * See: https://openiap.dev/docs/apis/ios/subscription-status-ios\n */\n subscriptionStatusIOS: Promise<SubscriptionStatusIOS[]>;\n}\n\nexport type QueryCurrentEntitlementIosArgs = string;\n\nexport type QueryFetchProductsArgs = ProductRequest;\n\nexport type QueryGetActiveSubscriptionsArgs = (string[] | null) | undefined;\n\nexport type QueryGetAvailablePurchasesArgs = (PurchaseOptions | null) | undefined;\n\nexport type QueryGetBillingChoiceInfoAndroidArgs = GetBillingChoiceInfoParamsAndroid;\n\nexport type QueryGetExternalPurchaseCustomLinkTokenIosArgs = ExternalPurchaseCustomLinkTokenTypeIOS;\n\nexport type QueryGetTransactionJwsIosArgs = string;\n\nexport type QueryHasActiveSubscriptionsArgs = (string[] | null) | undefined;\n\nexport type QueryIsEligibleForIntroOfferIosArgs = string;\n\nexport type QueryIsTransactionVerifiedIosArgs = string;\n\nexport type QueryLatestTransactionIosArgs = string;\n\nexport type QuerySubscriptionStatusIosArgs = string;\n\nexport interface RefundResultIOS {\n message?: (string | null);\n status: string;\n}\n\nexport interface RenewalCommitmentInfoIOS {\n commitmentAutoRenewProductId: string;\n commitmentAutoRenewStatus: boolean;\n commitmentRenewalBillingPlanType: SubscriptionBillingPlanTypeIOS;\n commitmentRenewalDate: number;\n commitmentRenewalPrice: number;\n}\n\n/**\n * Subscription renewal information from Product.SubscriptionInfo.RenewalInfo\n * https://developer.apple.com/documentation/storekit/product/subscriptioninfo/renewalinfo\n */\nexport interface RenewalInfoIOS {\n autoRenewPreference?: (string | null);\n /** Original transaction identifier for the bundle used by the next renewal. */\n bundleOriginalTransactionId?: (string | null);\n /** Product identifier for the bundle used by the next renewal. */\n bundleProductId?: (string | null);\n /** Subscription-group identifier for the bundle used by the next renewal. */\n bundleSubscriptionGroupId?: (string | null);\n /**\n * iOS 26.4+ renewal commitment metadata for monthly subscriptions with a\n * 12-month commitment.\n */\n commitmentInfo?: (RenewalCommitmentInfoIOS | null);\n /**\n * StoreKit's raw integer expiration-reason value represented as a string.\n * Xcode 27 adds the back-deployed unbundled case. Preserve unknown future values.\n */\n expirationReason?: (string | null);\n /**\n * Grace period expiration date (milliseconds since epoch)\n * When set, subscription is in grace period (billing issue but still has access)\n */\n gracePeriodExpirationDate?: (number | null);\n /**\n * True if subscription failed to renew due to billing issue and is retrying\n * StoreKit exposes this directly as RenewalInfo.isInBillingRetry.\n */\n isInBillingRetry?: (boolean | null);\n jsonRepresentation?: (string | null);\n /**\n * Product ID that will be used on next renewal (when user upgrades/downgrades)\n * If set and different from current productId, subscription will change on expiration\n */\n pendingUpgradeProductId?: (string | null);\n /**\n * User's response to subscription price increase\n * Possible values: \"AGREED\", \"PENDING\", null (no price increase)\n */\n priceIncreaseStatus?: (string | null);\n /** iOS 26.4+ billing plan that will renew after the current period. */\n renewalBillingPlanType?: (SubscriptionBillingPlanTypeIOS | null);\n /**\n * Expected renewal date (milliseconds since epoch)\n * For active subscriptions, when the next renewal/charge will occur\n */\n renewalDate?: (number | null);\n /** Offer ID applied to next renewal (promotional offer, subscription offer code, etc.) */\n renewalOfferId?: (string | null);\n /**\n * Type of offer applied to next renewal\n * Possible values: \"PROMOTIONAL\", \"SUBSCRIPTION_OFFER_CODE\", \"WIN_BACK\", etc.\n */\n renewalOfferType?: (string | null);\n willAutoRenew: boolean;\n /** Whether this subscription will leave its bundle and renew standalone. */\n willUnbundle?: (boolean | null);\n}\n\n/**\n * Rental details for one-time purchase products that can be rented (Android)\n * Available in Google Play Billing Library 8.0+\n */\nexport interface RentalDetailsAndroid {\n /**\n * Rental expiration period in ISO 8601 format\n * Time after rental period ends when user can still extend\n */\n rentalExpirationPeriod?: (string | null);\n /** Rental period in ISO 8601 format (e.g., P7D for 7 days) */\n rentalPeriod: string;\n}\n\nexport interface RequestPurchaseAndroidProps {\n /**\n * Developer billing option parameters for external payments and Billing Choice.\n * Billing Choice is available in OpenIAP Spec 2.1.0 / openiap-google 2.3.0\n * (requires Play Billing 9.1.0+).\n */\n developerBillingOption?: (DeveloperBillingOptionParamsAndroid | null);\n /**\n * Personalized offer flag.\n * When true, indicates the price was customized for this user.\n */\n isOfferPersonalized?: (boolean | null);\n /** Obfuscated account ID */\n obfuscatedAccountId?: (string | null);\n /** Obfuscated profile ID */\n obfuscatedProfileId?: (string | null);\n /**\n * Offer token for one-time purchase discounts (8.0+).\n * Pass the offerToken from discountOffers\n * to apply a discount offer to the purchase.\n */\n offerToken?: (string | null);\n /** List of product SKUs */\n skus: string[];\n}\n\nexport interface RequestPurchaseIosProps {\n /**\n * Advanced commerce data token (iOS 15+).\n * Used with StoreKit 2's Product.PurchaseOption.custom API for passing\n * campaign tokens, affiliate IDs, or other attribution data.\n * The data is formatted as JSON: {\"signatureInfo\": {\"token\": \"<value>\"}}\n */\n advancedCommerceData?: (string | null);\n /** Auto-finish transaction (dangerous) */\n andDangerouslyFinishTransactionAutomatically?: (boolean | null);\n /** App account token for user tracking */\n appAccountToken?: (string | null);\n /** Purchase quantity */\n quantity?: (number | null);\n /** Product SKU */\n sku: string;\n /**\n * Promotional offer to apply (subscriptions only, ignored for one-time purchases).\n * iOS only supports promotional offers for auto-renewable subscriptions.\n */\n withOffer?: (DiscountOfferInputIOS | null);\n}\n\nexport type RequestPurchaseProps =\n | {\n /** Per-platform purchase request props */\n request: RequestPurchasePropsByPlatforms;\n /** Explicit purchase type hint (defaults to in-app) */\n type: 'in-app';\n }\n | {\n /** Per-platform subscription request props */\n request: RequestSubscriptionPropsByPlatforms;\n /** Explicit purchase type hint (defaults to in-app) */\n type: 'subs';\n };\n\n/**\n * Platform-specific purchase request parameters.\n *\n * Note: \"Platforms\" refers to the SDK/OS level (apple, google), not the store.\n * - apple: Always targets App Store\n * - google: Targets Play Store by default, Horizon when built with horizon flavor,\n * or Fire OS when built with amazon flavor\n * (determined at build time, not runtime)\n */\nexport interface RequestPurchasePropsByPlatforms {\n /** Apple-specific purchase parameters */\n apple?: (RequestPurchaseIosProps | null);\n /** Google-specific purchase parameters */\n google?: (RequestPurchaseAndroidProps | null);\n}\n\nexport type RequestPurchaseResult = Purchase | Purchase[] | null;\n\nexport interface RequestSubscriptionAndroidProps {\n /**\n * Developer billing option parameters for external payments and Billing Choice.\n * Billing Choice is available in OpenIAP Spec 2.1.0 / openiap-google 2.3.0\n * (requires Play Billing 9.1.0+).\n */\n developerBillingOption?: (DeveloperBillingOptionParamsAndroid | null);\n /**\n * Personalized offer flag.\n * When true, indicates the price was customized for this user.\n */\n isOfferPersonalized?: (boolean | null);\n /** Obfuscated account ID */\n obfuscatedAccountId?: (string | null);\n /** Obfuscated profile ID */\n obfuscatedProfileId?: (string | null);\n /**\n * Original external transaction ID for replacing a subscription that was\n * purchased through developer billing. Available in OpenIAP Spec 2.1.0 /\n * openiap-google 2.3.0 (requires Play Billing 9.1.0+).\n */\n originalExternalTransactionId?: (string | null);\n /** Purchase token for upgrades/downgrades */\n purchaseToken?: (string | null);\n /** List of subscription SKUs */\n skus: string[];\n /** Subscription offers */\n subscriptionOffers?: (AndroidSubscriptionOfferInput[] | null);\n /**\n * Product-level replacement parameters (8.1.0+)\n * Use this instead of replacementMode for item-level replacement\n * This singular form requires skus to contain exactly one target product.\n * Multi-item subscription changes need a per-target replacement mapping and\n * are rejected rather than applying one oldProductId to multiple products.\n */\n subscriptionProductReplacementParams?: (SubscriptionProductReplacementParamsAndroid | null);\n}\n\nexport interface RequestSubscriptionIosProps {\n /**\n * Advanced commerce data token (iOS 15+).\n * Used with StoreKit 2's Product.PurchaseOption.custom API for passing\n * campaign tokens, affiliate IDs, or other attribution data.\n * The data is formatted as JSON: {\"signatureInfo\": {\"token\": \"<value>\"}}\n */\n advancedCommerceData?: (string | null);\n andDangerouslyFinishTransactionAutomatically?: (boolean | null);\n appAccountToken?: (string | null);\n /**\n * Billing plan to use when purchasing an annual subscription that offers\n * monthly billing with a 12-month commitment (iOS 26.4+).\n */\n billingPlanType?: (SubscriptionBillingPlanTypeIOS | null);\n /**\n * Compact JWS string for overriding introductory offer eligibility\n * (iOS 15+, WWDC 2025). When nil, the system determines eligibility.\n * Generate the JWS on your server and pass it to StoreKit's\n * introductoryOfferEligibility(compactJWS:) purchase option.\n */\n compactJWS?: (string | null);\n /**\n * JWS promotional offer (iOS 15+, WWDC 2025).\n * New signature format using compact JWS string for promotional offers.\n * Back-deployed to iOS 15.\n */\n promotionalOfferJWS?: (PromotionalOfferJwsInputIOS | null);\n quantity?: (number | null);\n sku: string;\n /**\n * Win-back offer to apply (iOS 18+)\n * Used to re-engage churned subscribers with a discount or free trial.\n * The offer is available when the customer is eligible and can be discovered\n * via StoreKit Message (automatic) or subscription offer APIs.\n */\n winBackOffer?: (WinBackOfferInputIOS | null);\n /**\n * Promotional offer to apply for subscription purchases.\n * Requires server-signed offer with nonce, timestamp, keyId, and signature.\n */\n withOffer?: (DiscountOfferInputIOS | null);\n}\n\n/**\n * Platform-specific subscription request parameters.\n *\n * Note: \"Platforms\" refers to the SDK/OS level (apple, google), not the store.\n * - apple: Always targets App Store\n * - google: Targets Play Store by default, Horizon when built with horizon flavor,\n * or Fire OS when built with amazon flavor\n * (determined at build time, not runtime)\n */\nexport interface RequestSubscriptionPropsByPlatforms {\n /** Apple-specific subscription parameters */\n apple?: (RequestSubscriptionIosProps | null);\n /** Google-specific subscription parameters */\n google?: (RequestSubscriptionAndroidProps | null);\n}\n\nexport interface RequestVerifyPurchaseWithIapkitAmazonProps {\n /** Amazon Appstore receipt id returned by PurchaseResponse.getReceipt().getReceiptId(). */\n receiptId: string;\n /** Use Amazon RVS Cloud Sandbox for App Tester receipts. */\n sandbox?: (boolean | null);\n /** Amazon Appstore user id returned by PurchaseResponse.getUserData().getUserId(). */\n userId?: (string | null);\n}\n\nexport interface RequestVerifyPurchaseWithIapkitAppleProps {\n /** The JWS token returned with the purchase response. */\n jws: string;\n}\n\nexport interface RequestVerifyPurchaseWithIapkitGoogleProps {\n /** The token provided to the user's device when the product or subscription was purchased. */\n purchaseToken: string;\n}\n\n/**\n * Platform-specific verification parameters for IAPKit.\n *\n * - apple: Verifies via App Store (JWS token)\n * - google: Verifies via Play Store (purchase token)\n * - amazon: Verifies via Amazon Appstore RVS (userId + receiptId)\n */\nexport interface RequestVerifyPurchaseWithIapkitProps {\n /** Amazon Appstore verification parameters. */\n amazon?: (RequestVerifyPurchaseWithIapkitAmazonProps | null);\n /** API key used for the Authorization header (Bearer {apiKey}). */\n apiKey?: (string | null);\n /** Apple App Store verification parameters. */\n apple?: (RequestVerifyPurchaseWithIapkitAppleProps | null);\n /**\n * Available in OpenIAP Spec 2.3.1 / openiap-apple 2.4.0 / openiap-google 2.4.0.\n * Base URL for the IAPKit server. Defaults to https://kit.openiap.dev.\n * Set this to a reachable HTTP(S) origin when self-hosting or testing a local IAPKit server.\n * The apiKey must be issued by the same IAPKit/Convex deployment as this server.\n */\n baseUrl?: (string | null);\n /** Google Play Store verification parameters. */\n google?: (RequestVerifyPurchaseWithIapkitGoogleProps | null);\n /**\n * Available in OpenIAP Spec 2.4.0 / openiap-apple 2.4.1 / openiap-google 2.4.1.\n * Include the product's public IAPKit client payload in a valid Apple or\n * Google verification response. Defaults to false so existing response\n * shapes and bandwidth remain unchanged.\n */\n includeClientPayload?: (boolean | null);\n}\n\nexport interface RequestVerifyPurchaseWithIapkitResult {\n /**\n * Available in OpenIAP Spec 2.4.0 / openiap-apple 2.4.1 / openiap-google 2.4.1.\n * Public product payload when includeClientPayload was requested, the\n * Apple or Google receipt is valid, and a payload exists for that product.\n */\n clientPayload?: (IapkitProductClientPayload | null);\n /**\n * True when the purchase is valid and actionable.\n * Only entitled, pending-acknowledgment, or ready-to-consume return true.\n * Callers must still match productId and use the platform plus app-owned product\n * type to choose the fulfillment path.\n */\n isValid: boolean;\n /**\n * Available in OpenIAP Spec 2.4.0 / openiap-apple 2.4.1 / openiap-google 2.4.1.\n * Store-verified product identifier when the provider returns one.\n */\n productId?: (string | null);\n /** The current state of the purchase. */\n state: IapkitPurchaseState;\n store: IapStore;\n}\n\n/**\n * Sub-response codes for more granular purchase error information (Android)\n * Available in Google Play Billing Library 8.0.0+\n */\nexport type SubResponseCodeAndroid = 'no-applicable-sub-response-code' | 'payment-declined-due-to-insufficient-funds' | 'user-ineligible';\n\nexport interface Subscription {\n /**\n * Fires when a user selects developer billing in an External Payments or\n * Billing Choice flow (Android only). The payload can contain an external\n * transaction token, link URI, original transaction ID, and selected products.\n * Billing Choice payload fields are available in OpenIAP Spec 2.1.0 /\n * openiap-google 2.3.0 (requires Play Billing 9.1.0+).\n */\n developerProvidedBillingAndroid: DeveloperProvidedBillingDetailsAndroid;\n /** Fires when the App Store surfaces a promoted product (iOS only) */\n promotedProductIOS: string;\n /** Fires when a purchase fails or is cancelled */\n purchaseError: PurchaseError;\n /**\n * Fires when a purchase completes successfully or a pending purchase resolves\n * Options can opt iOS listeners into duplicate StoreKit transaction replays\n * for diagnostics; default listeners receive one event per transaction ID\n * during a single connection session.\n */\n purchaseUpdated: Purchase;\n /**\n * Fires when a subscription enters a billing-issue state that needs user action\n * (payment method failed, card expired, etc.). Cross-platform unification:\n *\n * - iOS 16.4+ / Mac Catalyst 16.4+ / visionOS 1.0+: delivered via StoreKit 2\n * `Message.Reason.billingIssue`.\n * - Android (Play flavor, Billing 8.1+): emitted when `isSuspended == true` is first detected\n * on a previously healthy subscription. Requires Google Play Billing Library 8.1.0 or newer.\n * - Android (Horizon flavor): NOT emitted. The Horizon Billing Compatibility SDK implements\n * the Play Billing 7.0 API surface which does not expose a suspended-subscription signal.\n * - Android (Amazon flavor): NOT emitted. Amazon Appstore IAP does not expose an\n * equivalent subscription billing-issue signal.\n *\n * Listeners should not assume the event will fire on every store. Direct users to the\n * platform subscription management UI (`deepLinkToSubscriptions`) to resolve the issue.\n */\n subscriptionBillingIssue: Purchase;\n /**\n * Fires when a user selects alternative billing in the User Choice Billing dialog (Android only)\n * Only triggered when the user selects alternative billing instead of Google Play billing\n */\n userChoiceBillingAndroid: UserChoiceBillingDetails;\n}\n\nexport type SubscriptionPurchaseUpdatedArgs = (PurchaseUpdatedListenerOptions | null) | undefined;\n\nexport type SubscriptionBillingPlanTypeIOS = 'unknown' | 'monthly' | 'up-front';\n\nexport interface SubscriptionCommitmentInfoIOS {\n displayPrice: string;\n period: SubscriptionPeriodValueIOS;\n price: number;\n}\n\n/**\n * Standardized subscription discount/promotional offer.\n * Provides a unified interface for subscription offers across iOS and Android.\n *\n * Both platforms support subscription offers with different implementations:\n * - iOS: Introductory offers, promotional offers with server-side signatures\n * - Android: Offer tokens with pricing phases\n *\n * @see https://openiap.dev/docs/types/subscription-offer\n */\nexport interface SubscriptionOffer {\n /**\n * [Android] Base plan identifier.\n * Identifies which base plan this offer belongs to.\n */\n basePlanIdAndroid?: (string | null);\n /** Currency code (ISO 4217, e.g., \"USD\") */\n currency?: (string | null);\n /** Formatted display price string (e.g., \"$9.99/month\") */\n displayPrice: string;\n /**\n * Unique identifier for the offer.\n * - iOS: Discount identifier from App Store Connect\n * - Android: offerId from the Google Play subscription offer\n */\n id: string;\n /**\n * [Android] Installment plan details for this subscription offer.\n * Only set for installment subscription plans; null for non-installment plans.\n * Available in Google Play Billing Library 7.0+\n */\n installmentPlanDetailsAndroid?: (InstallmentPlanDetailsAndroid | null);\n /**\n * [iOS] Key identifier for signature validation.\n * Used with server-side signature generation for promotional offers.\n */\n keyIdentifierIOS?: (string | null);\n /** [iOS] Localized price string. */\n localizedPriceIOS?: (string | null);\n /**\n * [iOS] Cryptographic nonce (UUID) for signature validation.\n * Must be generated server-side for each purchase attempt.\n */\n nonceIOS?: (string | null);\n /** [iOS] Number of billing periods for this discount. */\n numberOfPeriodsIOS?: (number | null);\n /** [Android] List of tags associated with this offer. */\n offerTagsAndroid?: (string[] | null);\n /**\n * [Android] Offer token required for purchase.\n * Must be passed to requestPurchase() when purchasing with this offer.\n */\n offerTokenAndroid?: (string | null);\n /** Payment mode during the offer period */\n paymentMode?: (PaymentMode | null);\n /** Subscription period for this offer */\n period?: (SubscriptionPeriod | null);\n /** Number of periods the offer applies */\n periodCount?: (number | null);\n /** Numeric price value */\n price: number;\n /**\n * [Android] Pricing phases for this subscription offer.\n * Contains detailed pricing information for each phase (trial, intro, regular).\n */\n pricingPhasesAndroid?: (PricingPhasesAndroid | null);\n /**\n * [iOS] Server-generated signature for promotional offer validation.\n * Required when applying promotional offers on iOS.\n */\n signatureIOS?: (string | null);\n /**\n * [iOS] Timestamp when the signature was generated.\n * Used for signature validation.\n */\n timestampIOS?: (number | null);\n /** Type of subscription offer (Introductory or Promotional) */\n type: DiscountOfferType;\n}\n\nexport type SubscriptionOfferTypeIOS = 'introductory' | 'promotional' | 'win-back';\n\n/** Subscription period value combining unit and count. */\nexport interface SubscriptionPeriod {\n /** The period unit (day, week, month, year) */\n unit: SubscriptionPeriodUnit;\n /** The number of units (e.g., 1 for monthly, 3 for quarterly) */\n value: number;\n}\n\nexport type SubscriptionPeriodIOS = 'day' | 'week' | 'month' | 'year' | 'empty';\n\n/** Subscription period unit for cross-platform use. */\nexport type SubscriptionPeriodUnit = 'day' | 'week' | 'month' | 'year' | 'unknown';\n\nexport interface SubscriptionPeriodValueIOS {\n unit: SubscriptionPeriodIOS;\n value: number;\n}\n\nexport interface SubscriptionPricingTermsIOS {\n billingDisplayPrice: string;\n billingPeriod: SubscriptionPeriodValueIOS;\n billingPlanType: SubscriptionBillingPlanTypeIOS;\n billingPrice: number;\n commitmentInfo: SubscriptionCommitmentInfoIOS;\n subscriptionOffers?: (SubscriptionOffer[] | null);\n}\n\n/**\n * Product-level subscription replacement parameters (Android)\n * Used with setSubscriptionProductReplacementParams in BillingFlowParams.ProductDetailsParams\n * Available in Google Play Billing Library 8.1.0+\n */\nexport interface SubscriptionProductReplacementParamsAndroid {\n /** The old product ID that needs to be replaced */\n oldProductId: string;\n /** The replacement mode for this product change */\n replacementMode: SubscriptionReplacementModeAndroid;\n}\n\n/**\n * Replacement mode for subscription changes (Android)\n * These modes determine how the subscription replacement affects billing.\n * Available in Google Play Billing Library 8.1.0+\n */\nexport type SubscriptionReplacementModeAndroid = 'unknown-replacement-mode' | 'with-time-proration' | 'charge-prorated-price' | 'charge-full-price' | 'without-proration' | 'deferred' | 'keep-existing';\n\nexport interface SubscriptionStatusIOS {\n renewalInfo?: (RenewalInfoIOS | null);\n state: string;\n}\n\nexport interface TransactionCommitmentInfoIOS {\n billingPeriodNumber: number;\n commitmentExpiresDate: number;\n commitmentPrice: number;\n totalBillingPeriods: number;\n}\n\n/**\n * User Choice Billing event details (Android)\n * Fired when a user selects alternative billing in the User Choice Billing dialog\n */\nexport interface UserChoiceBillingDetails {\n /** Token that must be reported to Google Play within 24 hours */\n externalTransactionToken: string;\n /**\n * External transaction ID of the originating subscription when the user is\n * upgrading or downgrading a developer-billed subscription. Available in\n * OpenIAP Spec 2.3.0 / openiap-google 2.3.1 (requires Play Billing 9.1+).\n */\n originalExternalTransactionId?: (string | null);\n /**\n * Structured product details selected in the user-choice flow, including the\n * product type and offer token. Legacy payloads may omit this field; use\n * products as the product-ID fallback. Available in OpenIAP Spec 2.3.0 /\n * openiap-google 2.3.1 (requires Play Billing 9.1+).\n */\n productDetailsAndroid?: (DeveloperProvidedBillingProductAndroid[] | null);\n /** List of product IDs selected by the user */\n products: string[];\n}\n\n/**\n * Valid time window for when an offer is available (Android)\n * Available in Google Play Billing Library 8.0+\n */\nexport interface ValidTimeWindowAndroid {\n /** End time in milliseconds since epoch */\n endTimeMillis: string;\n /** Start time in milliseconds since epoch */\n startTimeMillis: string;\n}\n\n/**\n * Apple App Store verification parameters.\n * Used for server-side receipt validation via App Store Server API.\n */\nexport interface VerifyPurchaseAppleOptions {\n /** Product SKU to validate */\n sku: string;\n}\n\n/**\n * Google Play Store verification parameters.\n * Used for server-side receipt validation via Google Play Developer API.\n *\n * ⚠️ SECURITY: Contains sensitive tokens (accessToken, purchaseToken). Do not log or persist this data.\n */\nexport interface VerifyPurchaseGoogleOptions {\n /**\n * Google OAuth2 access token for API authentication.\n * ⚠️ Sensitive: Do not log this value.\n */\n accessToken: string;\n /** Whether this is a subscription purchase (affects API endpoint used) */\n isSub?: (boolean | null);\n /** Android package name (e.g., com.example.app) */\n packageName: string;\n /**\n * Purchase token from the purchase response.\n * ⚠️ Sensitive: Do not log this value.\n */\n purchaseToken: string;\n /** Product SKU to validate */\n sku: string;\n}\n\n/**\n * Meta Horizon (Quest) verification parameters.\n * Used for server-side entitlement verification via Meta's S2S API.\n * POST https://graph.oculus.com/$APP_ID/verify_entitlement\n *\n * ⚠️ SECURITY: Contains sensitive token (accessToken). Do not log or persist this data.\n */\nexport interface VerifyPurchaseHorizonOptions {\n /**\n * Access token for Meta API authentication (OC|$APP_ID|$APP_SECRET or User Access Token).\n * ⚠️ Sensitive: Do not log this value.\n */\n accessToken: string;\n /** The SKU for the add-on item, defined in Meta Developer Dashboard */\n sku: string;\n /** The user ID of the user whose purchase you want to verify */\n userId: string;\n}\n\n/**\n * Platform-specific purchase verification parameters.\n *\n * - apple: Verifies via App Store Server API\n * - google: Verifies via Google Play Developer API\n * - horizon: Verifies via Meta's S2S API (verify_entitlement endpoint)\n */\nexport interface VerifyPurchaseProps {\n /** Apple App Store verification parameters. */\n apple?: (VerifyPurchaseAppleOptions | null);\n /** Google Play Store verification parameters. */\n google?: (VerifyPurchaseGoogleOptions | null);\n /** Meta Horizon (Quest) verification parameters. */\n horizon?: (VerifyPurchaseHorizonOptions | null);\n}\n\nexport type VerifyPurchaseResult = VerifyPurchaseResultAndroid | VerifyPurchaseResultHorizon | VerifyPurchaseResultIOS;\n\nexport interface VerifyPurchaseResultAndroid {\n autoRenewing: boolean;\n betaProduct: boolean;\n cancelDate?: (number | null);\n cancelReason?: (string | null);\n deferredDate?: (number | null);\n deferredSku?: (string | null);\n freeTrialEndDate: number;\n gracePeriodEndDate: number;\n parentProductId: string;\n productId: string;\n productType: string;\n purchaseDate: number;\n quantity: number;\n receiptId: string;\n renewalDate: number;\n term: string;\n termSku: string;\n testTransaction: boolean;\n}\n\n/**\n * Result from Meta Horizon verify_entitlement API.\n * Returns verification status and grant time for the entitlement.\n */\nexport interface VerifyPurchaseResultHorizon {\n /** Unix timestamp (seconds) when the entitlement was granted. */\n grantTime?: (number | null);\n /** Whether the entitlement verification succeeded. */\n success: boolean;\n}\n\nexport interface VerifyPurchaseResultIOS {\n /** Whether the receipt is valid */\n isValid: boolean;\n /** JWS representation */\n jwsRepresentation: string;\n /** Latest transaction if available */\n latestTransaction?: (Purchase | null);\n /** Receipt data string */\n receiptData: string;\n}\n\nexport interface VerifyPurchaseWithProviderError {\n code?: (string | null);\n message: string;\n}\n\nexport interface VerifyPurchaseWithProviderProps {\n iapkit?: (RequestVerifyPurchaseWithIapkitProps | null);\n provider: PurchaseVerificationProvider;\n}\n\nexport interface VerifyPurchaseWithProviderResult {\n /** Error details if verification failed */\n errors?: (VerifyPurchaseWithProviderError[] | null);\n /** IAPKit verification result */\n iapkit?: (RequestVerifyPurchaseWithIapkitResult | null);\n provider: PurchaseVerificationProvider;\n}\n\nexport type VoidResult = void;\n\n/**\n * Win-back offer input for iOS 18+ (StoreKit 2)\n * Win-back offers are used to re-engage churned subscribers.\n * The offer is automatically presented via StoreKit Message when eligible,\n * or can be applied programmatically during purchase.\n */\nexport interface WinBackOfferInputIOS {\n /** The win-back offer ID from App Store Connect */\n offerId: string;\n}\n// -- Mutation helper types (auto-generated)\nexport type MutationArgsMap = {\n acknowledgePurchaseAndroid: MutationAcknowledgePurchaseAndroidArgs;\n beginRefundRequestIOS: MutationBeginRefundRequestIosArgs;\n clearTransactionIOS: never;\n consumePurchaseAndroid: MutationConsumePurchaseAndroidArgs;\n createBillingProgramReportingDetailsAndroid: MutationCreateBillingProgramReportingDetailsAndroidArgs;\n deepLinkToSubscriptions: MutationDeepLinkToSubscriptionsArgs;\n endConnection: never;\n finishTransaction: MutationFinishTransactionArgs;\n initConnection: MutationInitConnectionArgs;\n isBillingProgramAvailableAndroid: MutationIsBillingProgramAvailableAndroidArgs;\n launchExternalLinkAndroid: MutationLaunchExternalLinkAndroidArgs;\n openRedeemOfferCodeAndroid: never;\n presentCodeRedemptionSheetIOS: never;\n presentExternalPurchaseLinkIOS: MutationPresentExternalPurchaseLinkIosArgs;\n presentExternalPurchaseNoticeSheetIOS: never;\n requestPurchase: MutationRequestPurchaseArgs;\n restorePurchases: never;\n showBillingProgramInformationDialogAndroid: MutationShowBillingProgramInformationDialogAndroidArgs;\n showExternalPurchaseCustomLinkNoticeIOS: MutationShowExternalPurchaseCustomLinkNoticeIosArgs;\n showInAppMessagesAndroid: MutationShowInAppMessagesAndroidArgs;\n showManageSubscriptionsIOS: never;\n syncIOS: never;\n verifyPurchase: MutationVerifyPurchaseArgs;\n verifyPurchaseWithProvider: MutationVerifyPurchaseWithProviderArgs;\n};\n\nexport type MutationField<K extends keyof Mutation> =\n MutationArgsMap[K] extends never\n ? () => NonNullable<Mutation[K]>\n : undefined extends MutationArgsMap[K]\n ? (args?: MutationArgsMap[K]) => NonNullable<Mutation[K]>\n : (args: MutationArgsMap[K]) => NonNullable<Mutation[K]>;\n\nexport type MutationFieldMap = {\n [K in keyof Mutation]?: MutationField<K>;\n};\n// -- End mutation helper types\n\n// -- Query helper types (auto-generated)\nexport type QueryArgsMap = {\n canPresentExternalPurchaseNoticeIOS: never;\n currentEntitlementIOS: QueryCurrentEntitlementIosArgs;\n fetchProducts: QueryFetchProductsArgs;\n getActiveSubscriptions: QueryGetActiveSubscriptionsArgs;\n getAllTransactionsIOS: never;\n getAppTransactionIOS: never;\n getAvailablePurchases: QueryGetAvailablePurchasesArgs;\n getBillingChoiceInfoAndroid: QueryGetBillingChoiceInfoAndroidArgs;\n getExternalPurchaseCustomLinkTokenIOS: QueryGetExternalPurchaseCustomLinkTokenIosArgs;\n getPendingTransactionsIOS: never;\n getPromotedProductIOS: never;\n getReceiptDataIOS: never;\n getStorefront: never;\n getTransactionJwsIOS: QueryGetTransactionJwsIosArgs;\n hasActiveSubscriptions: QueryHasActiveSubscriptionsArgs;\n isEligibleForExternalPurchaseCustomLinkIOS: never;\n isEligibleForIntroOfferIOS: QueryIsEligibleForIntroOfferIosArgs;\n isTransactionVerifiedIOS: QueryIsTransactionVerifiedIosArgs;\n latestTransactionIOS: QueryLatestTransactionIosArgs;\n subscriptionStatusIOS: QuerySubscriptionStatusIosArgs;\n};\n\nexport type QueryField<K extends keyof Query> =\n QueryArgsMap[K] extends never\n ? () => NonNullable<Query[K]>\n : undefined extends QueryArgsMap[K]\n ? (args?: QueryArgsMap[K]) => NonNullable<Query[K]>\n : (args: QueryArgsMap[K]) => NonNullable<Query[K]>;\n\nexport type QueryFieldMap = {\n [K in keyof Query]?: QueryField<K>;\n};\n// -- End query helper types\n\n// -- Subscription helper types (auto-generated)\nexport type SubscriptionArgsMap = {\n developerProvidedBillingAndroid: never;\n promotedProductIOS: never;\n purchaseError: never;\n purchaseUpdated: SubscriptionPurchaseUpdatedArgs;\n subscriptionBillingIssue: never;\n userChoiceBillingAndroid: never;\n};\n\nexport type SubscriptionField<K extends keyof Subscription> =\n SubscriptionArgsMap[K] extends never\n ? () => NonNullable<Subscription[K]>\n : undefined extends SubscriptionArgsMap[K]\n ? (args?: SubscriptionArgsMap[K]) => NonNullable<Subscription[K]>\n : (args: SubscriptionArgsMap[K]) => NonNullable<Subscription[K]>;\n\nexport type SubscriptionFieldMap = {\n [K in keyof Subscription]?: SubscriptionField<K>;\n};\n// -- End subscription helper types\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,8CAA8C;AAC9C,oFAAoF;AACpF,+EAA+E;AAmc/E,MAAM,CAAN,IAAY,SAqCX;AArCD,WAAY,SAAS;IACnB,yDAA4C,CAAA;IAC5C,2CAA8B,CAAA;IAC9B,iDAAoC,CAAA;IACpC,gFAAmE,CAAA;IACnE,uDAA0C,CAAA;IAC1C,mDAAsC,CAAA;IACtC,iDAAoC,CAAA;IACpC,+CAAkC,CAAA;IAClC,qDAAwC,CAAA;IACxC,4CAA+B,CAAA;IAC/B,0DAA6C,CAAA;IAC7C,kDAAqC,CAAA;IACrC,+CAAkC,CAAA;IAClC,wCAA2B,CAAA;IAC3B,4CAA+B,CAAA;IAC/B,iDAAoC,CAAA;IACpC,2CAA8B,CAAA;IAC9B,mCAAsB,CAAA;IACtB,yCAA4B,CAAA;IAC5B,gCAAmB,CAAA;IACnB,6CAAgC,CAAA;IAChC,wEAA2D,CAAA;IAC3D,qFAAwE,CAAA;IACxE,4EAA+D,CAAA;IAC/D,2CAA8B,CAAA;IAC9B,yCAA4B,CAAA;IAC5B,yDAA4C,CAAA;IAC5C,2CAA8B,CAAA;IAC9B,+CAAkC,CAAA;IAClC,0CAA6B,CAAA;IAC7B,oDAAuC,CAAA;IACvC,qCAAwB,CAAA;IACxB,0EAA6D,CAAA;IAC7D,gCAAmB,CAAA;IACnB,6CAAgC,CAAA;IAChC,qCAAwB,CAAA;AAC1B,CAAC,EArCW,SAAS,KAAT,SAAS,QAqCpB;AAg0DD,mCAAmC","sourcesContent":["// ============================================================================\n// AUTO-GENERATED TYPES — DO NOT EDIT DIRECTLY\n// Refresh this file with the generated-types workflow documented for your checkout.\n// ============================================================================\n\nexport interface ActiveSubscription {\n autoRenewingAndroid?: (boolean | null);\n basePlanIdAndroid?: (string | null);\n /**\n * The current plan identifier. This is:\n * - On Android: the basePlanId (e.g., \"premium\", \"premium-year\")\n * - On iOS: the productId (e.g., \"com.example.premium_monthly\", \"com.example.premium_yearly\")\n * This provides a unified way to identify which specific plan/tier the user is subscribed to.\n */\n currentPlanId?: (string | null);\n daysUntilExpirationIOS?: (number | null);\n environmentIOS?: (string | null);\n expirationDateIOS?: (number | null);\n isActive: boolean;\n productId: string;\n purchaseToken?: (string | null);\n /** Required for subscription upgrade/downgrade on Android */\n purchaseTokenAndroid?: (string | null);\n /**\n * Renewal information from StoreKit 2 (iOS only). Contains details about subscription renewal status,\n * pending upgrades/downgrades, and auto-renewal preferences.\n */\n renewalInfoIOS?: (RenewalInfoIOS | null);\n /** Unix timestamp in milliseconds since January 1, 1970 UTC. */\n transactionDate: number;\n transactionId: string;\n}\n\n/**\n * Advanced Commerce metadata from a transaction (iOS 18.4+).\n * Contains item details, tax information, and refund data for purchases\n * made through the Advanced Commerce API using generic SKUs.\n * Only present for transactions that use the Advanced Commerce API.\n */\nexport interface AdvancedCommerceInfoIOS {\n /** Optional description */\n description?: (string | null);\n /** Optional display name */\n displayName?: (string | null);\n /** Estimated tax amount (decimal string) */\n estimatedTax?: (string | null);\n /** The items purchased as part of this transaction */\n items: AdvancedCommerceItemIOS[];\n /**\n * Subscription period for this transaction.\n * Available in OpenIAP Spec 3.1.0 / openiap-apple 3.1.0\n * (requires iOS 18.4+, macOS 15.4+, tvOS 18.4+, watchOS 11.4+,\n * or visionOS 2.4+).\n */\n period?: (SubscriptionPeriodValueIOS | null);\n /** Request reference identifier for tracking */\n requestReferenceId?: (string | null);\n /** Tax code for the transaction */\n taxCode?: (string | null);\n /** Price excluding tax (decimal string) */\n taxExclusivePrice?: (string | null);\n /** Tax rate applied (decimal string) */\n taxRate?: (string | null);\n}\n\n/** Details of an Advanced Commerce item (iOS 18.4+). */\nexport interface AdvancedCommerceItemDetailsIOS {\n /** JSON representation of the item details */\n jsonRepresentation?: (string | null);\n}\n\n/**\n * An item purchased through the Advanced Commerce API (iOS 18.4+).\n * Represents a developer-defined product within a generic SKU transaction.\n */\nexport interface AdvancedCommerceItemIOS {\n /** The item's detail information */\n details?: (AdvancedCommerceItemDetailsIOS | null);\n /** Refunds issued for this item, if any */\n refunds?: (AdvancedCommerceRefundIOS[] | null);\n /** Date access to this item was revoked (milliseconds since epoch) */\n revocationDate?: (number | null);\n}\n\n/** Refund information for an Advanced Commerce item (iOS 18.4+). */\nexport interface AdvancedCommerceRefundIOS {\n /** JSON representation of the refund details */\n jsonRepresentation?: (string | null);\n}\n\nexport interface AndroidSubscriptionOfferInput {\n /** Offer token */\n offerToken: string;\n /** Product SKU */\n sku: string;\n}\n\nexport interface AppTransaction {\n appId: number;\n appTransactionId?: (string | null);\n appVersion: string;\n appVersionId: number;\n bundleId: string;\n deviceVerification: string;\n deviceVerificationNonce: string;\n environment: string;\n originalAppVersion: string;\n /**\n * Original App Store platform raw value. Xcode 27 adds the back-deployed managed\n * acquisition-platform value.\n */\n originalPlatform?: (string | null);\n originalPurchaseDate: number;\n preorderDate?: (number | null);\n /**\n * Date the app-acquisition transaction was revoked (epoch milliseconds).\n * Available through the Xcode 27 SDK and back-deployed to Apple 16+.\n */\n revocationDate?: (number | null);\n signedDate: number;\n /**\n * Store channel of the original app purchase: consumer, education, enterprise,\n * or another future StoreKit value (Apple 27+ beta).\n */\n storeType?: (string | null);\n}\n\n/**\n * Play Billing choice image layout (Android)\n * Available in OpenIAP Spec 2.1.0 / openiap-google 2.3.0 (requires Play Billing 9.1.0+).\n */\nexport type BillingChoiceImageLayoutAndroid = 'rectangular-four-by-one' | 'rectangular-three-by-one' | 'rectangular-two-by-two';\n\n/**\n * Display information for developer-rendered Billing Choice screens (Android)\n * Available in OpenIAP Spec 2.1.0 / openiap-google 2.3.0 (requires Play Billing 9.1.0+).\n */\nexport interface BillingChoiceInfoAndroid {\n /** URL for the Play Billing choice image matching the requested layout. */\n playBillingChoiceImageUrl: string;\n /** Play Loyalty information for the user. */\n playBillingLoyaltyInfo?: (string | null);\n}\n\n/**\n * Choice screen renderer for Billing Choice availability (Android)\n * Available in OpenIAP Spec 2.1.0 / openiap-google 2.3.0 (requires Play Billing 9.1.0+).\n */\nexport type BillingChoiceScreenTypeAndroid = 'unspecified' | 'developer-rendered' | 'google-rendered';\n\n/**\n * Billing program types for Google Play Billing Programs (Android)\n * Available in Google Play Billing Library 8.2.0 (External Offer and External Content Link\n * integrations require 8.2.1+), EXTERNAL_PAYMENTS added in 8.3.0,\n * BILLING_CHOICE added in OpenIAP Spec 2.1.0 / openiap-google 2.3.0\n * (requires Play Billing 9.1.0+).\n */\nexport type BillingProgramAndroid = 'unspecified' | 'user-choice-billing' | 'external-content-link' | 'external-offer' | 'external-payments' | 'billing-choice';\n\n/**\n * Result of checking billing program availability (Android)\n * Available in Google Play Billing Library 8.2.0+\n */\nexport interface BillingProgramAvailabilityResultAndroid {\n /** The billing program that was checked */\n billingProgram: BillingProgramAndroid;\n /**\n * Billing Choice screen renderer. Populated only for available BILLING_CHOICE results.\n * Available in OpenIAP Spec 2.1.0 / openiap-google 2.3.0.\n */\n choiceScreenType?: (BillingChoiceScreenTypeAndroid | null);\n /** Whether the billing program is available for the user */\n isAvailable: boolean;\n /**\n * Whether external-link payment is available for Billing Choice.\n * Populated only for available BILLING_CHOICE results.\n * Available in OpenIAP Spec 2.1.0 / openiap-google 2.3.0.\n */\n isExternalLinkAvailable?: (boolean | null);\n}\n\n/**\n * Parameters for showing a billing program information dialog (Android)\n * Available in OpenIAP Spec 2.1.0 / openiap-google 2.3.0 (requires Play Billing 9.1.0+).\n */\nexport interface BillingProgramInformationDialogParamsAndroid {\n /** Billing program. Currently only BILLING_CHOICE is supported. */\n billingProgram?: BillingProgramAndroid;\n /** External transaction token returned by the Billing Choice reporting-details flow. */\n externalTransactionToken: string;\n}\n\n/**\n * Reporting details for transactions made outside of Google Play Billing (Android)\n * Contains the external transaction token needed for reporting\n * Available in Google Play Billing Library 8.2.0+\n */\nexport interface BillingProgramReportingDetailsAndroid {\n /** The billing program that the reporting details are associated with */\n billingProgram: BillingProgramAndroid;\n /**\n * External transaction token used to report transactions made outside of Google Play Billing.\n * Do not cache it for a later redirect session. For External Offer, the same token may report\n * multiple purchases made during the session that generated it.\n */\n externalTransactionToken: string;\n}\n\n/**\n * Extended billing result with sub-response code (Android)\n * Available in Google Play Billing Library 8.0.0+\n */\nexport interface BillingResultAndroid {\n /** Debug message from the billing library */\n debugMessage?: (string | null);\n /** The response code from the billing operation */\n responseCode: number;\n /**\n * Sub-response code for more granular error information (8.0+).\n * Provides additional context when responseCode indicates an error.\n */\n subResponseCode?: (SubResponseCodeAndroid | null);\n}\n\n/**\n * Metadata for one auto-renewable subscription included in an Apple\n * subscription bundle (Apple 27+ beta).\n */\nexport interface BundledSubscriptionIOS {\n description: string;\n displayName: string;\n displayPrice: string;\n id: string;\n isFamilyShareable: boolean;\n price: number;\n subscriptionGroupDisplayName: string;\n subscriptionGroupId: string;\n subscriptionGroupLevel: number;\n}\n\nexport interface DeepLinkOptions {\n /** Android package name to target (required on Android) */\n packageNameAndroid?: (string | null);\n /** Android SKU to open (required on Android) */\n skuAndroid?: (string | null);\n}\n\n/**\n * Launch mode for developer billing option (Android)\n * Determines how the external payment URL is launched\n * Available in Google Play Billing Library 8.3.0+\n */\nexport type DeveloperBillingLaunchModeAndroid = 'unspecified' | 'launch-in-external-browser-or-app' | 'caller-will-launch-link';\n\n/**\n * Parameters for a developer billing option in a purchase flow (Android).\n * Used with BillingFlowParams for external payments (8.3.0+) and Billing Choice\n * (OpenIAP Spec 2.1.0 / openiap-google 2.3.0; requires Play Billing 9.1.0+).\n * Only billingProgram is required; link fields are used when the selected program\n * links outside the app.\n */\nexport interface DeveloperBillingOptionParamsAndroid {\n /** The billing program. Use EXTERNAL_PAYMENTS or BILLING_CHOICE. */\n billingProgram: BillingProgramAndroid;\n /**\n * A pre-generated external transaction token for a Billing Choice external-link\n * flow. Omit it when Google Play should provide the token in the callback.\n */\n externalTransactionToken?: (string | null);\n /**\n * The launch mode for the external payment link.\n * Required only when the selected billing program links outside the app.\n */\n launchMode?: (DeveloperBillingLaunchModeAndroid | null);\n /**\n * The URI where the external payment will be processed.\n * Required only when the selected billing program links outside the app.\n */\n linkUri?: (string | null);\n}\n\n/**\n * Developer-provided billing destination type for Billing Program reporting details (Android)\n * Available in OpenIAP Spec 2.1.0 / openiap-google 2.3.0 (requires Play Billing 9.1.0+).\n */\nexport type DeveloperBillingTypeAndroid = 'developer-billing-type-unspecified' | 'in-app' | 'external-link';\n\n/**\n * Details provided when user selects developer billing option (Android)\n * Received via DeveloperProvidedBillingListener callback\n * Available in Google Play Billing Library 8.3.0+\n */\nexport interface DeveloperProvidedBillingDetailsAndroid {\n /**\n * External transaction token used to report transactions made through developer billing.\n * Nullable for flows such as external payments where no token is returned.\n */\n externalTransactionToken?: (string | null);\n /**\n * URI to launch for an external-link Billing Choice flow, when provided by\n * Google Play.\n */\n linkUri?: (string | null);\n /**\n * Original external transaction ID when replacing a subscription that was\n * purchased through developer billing.\n */\n originalExternalTransactionId?: (string | null);\n /** Products selected for the developer billing flow. */\n products: DeveloperProvidedBillingProductAndroid[];\n}\n\n/** Product selected for developer-provided billing (Android 9.0+). */\nexport interface DeveloperProvidedBillingProductAndroid {\n /** Product identifier. */\n id: string;\n /** Subscription offer token, when applicable. */\n offerToken?: (string | null);\n /** Google Play product type (in-app or subscription). */\n type: ProductType;\n}\n\n/**\n * Discount amount details for one-time purchase offers (Android)\n * Available in Google Play Billing Library 8.0+\n */\nexport interface DiscountAmountAndroid {\n /** Discount amount in micro-units (1,000,000 = 1 unit of currency) */\n discountAmountMicros: string;\n /** Formatted discount amount with currency sign (e.g., \"$4.99\") */\n formattedDiscountAmount: string;\n}\n\n/**\n * Discount display information for one-time purchase offers (Android)\n * Available in Google Play Billing Library 8.0+\n */\nexport interface DiscountDisplayInfoAndroid {\n /**\n * Absolute discount amount details\n * Only returned for fixed amount discounts\n */\n discountAmount?: (DiscountAmountAndroid | null);\n /**\n * Percentage discount (e.g., 33 for 33% off)\n * Only returned for percentage-based discounts\n */\n percentageDiscount?: (number | null);\n}\n\n/**\n * Standardized one-time product discount offer.\n * Provides a platform-neutral OpenIAP shape for Google Play one-time product\n * purchase options and offers.\n *\n * Currently populated only on Android (Google Play Billing 8.0+).\n * iOS does not populate this type.\n *\n * @see https://openiap.dev/docs/types/discount-offer\n */\nexport interface DiscountOffer {\n /** Currency code (ISO 4217, e.g., \"USD\") */\n currency: string;\n /**\n * [Android] Fixed discount amount in micro-units.\n * Only present for fixed amount discounts.\n */\n discountAmountMicrosAndroid?: (string | null);\n /** Formatted display price string (e.g., \"$4.99\") */\n displayPrice: string;\n /** [Android] Formatted discount amount including its currency sign (e.g., \"$5.00\"). */\n formattedDiscountAmountAndroid?: (string | null);\n /**\n * [Android] Original full price in micro-units before discount.\n * Divide by 1,000,000 to get the actual price.\n * Use for displaying strikethrough original price.\n */\n fullPriceMicrosAndroid?: (string | null);\n /**\n * Unique identifier for the offer.\n * - iOS: Not applicable (one-time discounts not supported)\n * - Android: offerId from the Google Play one-time purchase option\n */\n id?: (string | null);\n /**\n * [Android] Limited quantity information.\n * Contains maximumQuantity and remainingQuantity.\n */\n limitedQuantityInfoAndroid?: (LimitedQuantityInfoAndroid | null);\n /** [Android] List of tags associated with this offer. */\n offerTagsAndroid?: (string[] | null);\n /**\n * [Android] Offer token required for purchase.\n * Must be passed to requestPurchase() when purchasing with this offer.\n */\n offerTokenAndroid?: (string | null);\n /**\n * [Android] Percentage discount (e.g., 33 for 33% off).\n * Only present for percentage-based discounts.\n */\n percentageDiscountAndroid?: (number | null);\n /**\n * [Android] Pre-order details if this is a pre-order offer.\n * Available in Google Play Billing Library 8.1.0+\n */\n preorderDetailsAndroid?: (PreorderDetailsAndroid | null);\n /** Numeric price value */\n price: number;\n /**\n * [Android] Purchase option ID for this offer.\n * Used to identify which purchase option the user selected.\n * Available in Google Play Billing Library 8.0+\n */\n purchaseOptionIdAndroid?: (string | null);\n /** [Android] Rental details if this is a rental offer. */\n rentalDetailsAndroid?: (RentalDetailsAndroid | null);\n /**\n * Offer category. DiscountOffer currently represents Android one-time product\n * offers and is populated as OneTime. Introductory and Promotional are used by\n * SubscriptionOffer.\n */\n type: DiscountOfferType;\n /**\n * [Android] Valid time window for the offer.\n * Contains startTimeMillis and endTimeMillis.\n */\n validTimeWindowAndroid?: (ValidTimeWindowAndroid | null);\n}\n\nexport interface DiscountOfferInputIOS {\n /** Discount identifier */\n identifier: string;\n /** Key identifier for validation */\n keyIdentifier: string;\n /** Cryptographic nonce */\n nonce: string;\n /** Signature for validation */\n signature: string;\n /** Timestamp of discount offer */\n timestamp: number;\n}\n\n/**\n * Discount offer type enumeration.\n * Categorizes the type of discount or promotional offer.\n */\nexport type DiscountOfferType = 'introductory' | 'promotional' | 'one-time';\n\nexport interface EntitlementIOS {\n jsonRepresentation: string;\n sku: string;\n transactionId: string;\n}\n\nexport enum ErrorCode {\n ActivityUnavailable = 'activity-unavailable',\n AlreadyOwned = 'already-owned',\n AlreadyPrepared = 'already-prepared',\n BillingResponseJsonParseError = 'billing-response-json-parse-error',\n BillingUnavailable = 'billing-unavailable',\n ConnectionClosed = 'connection-closed',\n DeferredPayment = 'deferred-payment',\n DeveloperError = 'developer-error',\n DuplicatePurchase = 'duplicate-purchase',\n EmptySkuList = 'empty-sku-list',\n FeatureNotSupported = 'feature-not-supported',\n IapNotAvailable = 'iap-not-available',\n InitConnection = 'init-connection',\n Interrupted = 'interrupted',\n ItemNotOwned = 'item-not-owned',\n ItemUnavailable = 'item-unavailable',\n NetworkError = 'network-error',\n NotEnded = 'not-ended',\n NotPrepared = 'not-prepared',\n Pending = 'pending',\n PurchaseError = 'purchase-error',\n PurchaseVerificationFailed = 'purchase-verification-failed',\n PurchaseVerificationFinishFailed = 'purchase-verification-finish-failed',\n PurchaseVerificationFinished = 'purchase-verification-finished',\n QueryProduct = 'query-product',\n RemoteError = 'remote-error',\n ServiceDisconnected = 'service-disconnected',\n ServiceError = 'service-error',\n ServiceTimeout = 'service-timeout',\n SkuNotFound = 'sku-not-found',\n SkuOfferMismatch = 'sku-offer-mismatch',\n SyncError = 'sync-error',\n TransactionValidationFailed = 'transaction-validation-failed',\n Unknown = 'unknown',\n UserCancelled = 'user-cancelled',\n UserError = 'user-error'\n}\n\n/**\n * Launch mode for external link flow (Android)\n * Determines how the external URL is launched\n * Introduced in Google Play Billing Library 8.2.0. External Offer and External Content Link\n * integrations require 8.2.1+ and fresh details immediately before every redirect session.\n */\nexport type ExternalLinkLaunchModeAndroid = 'unspecified' | 'launch-in-external-browser-or-app' | 'caller-will-launch-link';\n\n/**\n * Link type for external link flow (Android)\n * Specifies the type of external link destination\n * Available in Google Play Billing Library 8.2.0+\n */\nexport type ExternalLinkTypeAndroid = 'unspecified' | 'link-to-digital-content-offer' | 'link-to-app-download';\n\n/** Result of showing ExternalPurchaseCustomLink notice (iOS 18.1+). */\nexport interface ExternalPurchaseCustomLinkNoticeResultIOS {\n /** Whether the user chose to continue to external purchase */\n continued: boolean;\n /** Optional error message if the presentation failed */\n error?: (string | null);\n}\n\n/**\n * Notice types for ExternalPurchaseCustomLink (iOS 18.1+).\n * Determines the style of disclosure notice to display.\n * Reference: https://developer.apple.com/documentation/storekit/externalpurchasecustomlink/noticetype\n */\nexport type ExternalPurchaseCustomLinkNoticeTypeIOS = 'browser';\n\n/** Result of requesting an ExternalPurchaseCustomLink token (iOS 18.1+). */\nexport interface ExternalPurchaseCustomLinkTokenResultIOS {\n /** Optional error message if token retrieval failed */\n error?: (string | null);\n /**\n * The external purchase token string.\n * Report this token to Apple's External Purchase Server API.\n */\n token?: (string | null);\n}\n\n/**\n * Token types for ExternalPurchaseCustomLink (iOS 18.1+).\n * Used to request different types of external purchase tokens for reporting to Apple.\n * Reference: https://developer.apple.com/documentation/storekit/externalpurchasecustomlink/token(for:)\n */\nexport type ExternalPurchaseCustomLinkTokenTypeIOS = 'acquisition' | 'services';\n\n/** Result of presenting an external purchase link */\nexport interface ExternalPurchaseLinkResultIOS {\n /** Optional error message if the presentation failed */\n error?: (string | null);\n /** Whether the user completed the external purchase flow */\n success: boolean;\n}\n\n/** User actions on external purchase notice sheet (iOS 17.4+) */\nexport type ExternalPurchaseNoticeAction = 'continue' | 'dismissed';\n\n/**\n * Result of presenting external purchase notice sheet (iOS 17.4+)\n * Returns the token when user continues to external purchase.\n */\nexport interface ExternalPurchaseNoticeResultIOS {\n /** Optional error message if the presentation failed */\n error?: (string | null);\n /**\n * External purchase token returned when user continues (iOS 17.4+).\n * This token should be reported to Apple's External Purchase Server API.\n * Only present when result is Continue.\n */\n externalPurchaseToken?: (string | null);\n /** Notice result indicating user action */\n result: ExternalPurchaseNoticeAction;\n}\n\nexport type FetchProductsResult = ProductOrSubscription[] | Product[] | ProductSubscription[] | null;\n\n/**\n * Parameters for fetching Billing Choice display information (Android)\n * Available in OpenIAP Spec 2.1.0 / openiap-google 2.3.0 (requires Play Billing 9.1.0+).\n */\nexport interface GetBillingChoiceInfoParamsAndroid {\n /** Billing program. Currently only BILLING_CHOICE is supported. */\n billingProgram?: BillingProgramAndroid;\n /** Desired Play Billing choice image layout. */\n playBillingChoiceImageLayout?: BillingChoiceImageLayoutAndroid;\n /** BCP 47 locale tag. If omitted, Play Billing uses the user's default locale. */\n userLocale?: (string | null);\n}\n\nexport type IapEvent = 'purchase-updated' | 'purchase-error' | 'promoted-product-ios' | 'user-choice-billing-android' | 'developer-provided-billing-android' | 'subscription-billing-issue';\n\nexport type IapPlatform = 'ios' | 'android';\n\nexport type IapStore = 'unknown' | 'apple' | 'google' | 'horizon' | 'amazon';\n\n/** Serialization format of a public IAPKit product client payload. */\nexport type IapkitClientPayloadFormat = 'toml' | 'json' | 'text';\n\n/**\n * Public app-facing data attached to one store product in IAPKit.\n * Never place credentials, signing keys, or server-authoritative rules here.\n */\nexport interface IapkitProductClientPayload {\n body: string;\n format: IapkitClientPayloadFormat;\n updatedAt: number;\n version: number;\n}\n\n/** Unified purchase states from IAPKit verification response. */\nexport type IapkitPurchaseState = 'entitled' | 'pending-acknowledgment' | 'pending' | 'canceled' | 'expired' | 'ready-to-consume' | 'consumed' | 'unknown' | 'inauthentic';\n\n/**\n * High-level in-app message category (Android)\n * Available in OpenIAP Spec 2.1.0 / openiap-google 2.3.0\n * (upstream API available since Play Billing 4.1.0).\n */\nexport type InAppMessageCategoryAndroid = 'unknown-in-app-message-category-id' | 'transactional';\n\n/**\n * Parameters for showing Play billing in-app messages (Android)\n * Available in OpenIAP Spec 2.1.0 / openiap-google 2.3.0\n * (upstream API available since Play Billing 4.1.0).\n */\nexport interface InAppMessageParamsAndroid {\n /** In-app message categories to show. Defaults to transactional messages. */\n categories?: (InAppMessageCategoryAndroid[] | null);\n}\n\n/**\n * Response code from Play billing in-app messages (Android)\n * Available in OpenIAP Spec 2.1.0 / openiap-google 2.3.0\n * (upstream API available since Play Billing 4.1.0).\n */\nexport type InAppMessageResponseCodeAndroid = 'no-action-needed' | 'subscription-status-updated';\n\n/**\n * Result from showing Play billing in-app messages (Android)\n * Available in OpenIAP Spec 2.1.0 / openiap-google 2.3.0\n * (upstream API available since Play Billing 4.1.0).\n */\nexport interface InAppMessageResultAndroid {\n /** Purchase token returned when a subscription status changed. */\n purchaseToken?: (string | null);\n /** Response code for the in-app messaging flow. */\n responseCode: InAppMessageResponseCodeAndroid;\n}\n\n/** Connection initialization configuration */\nexport interface InitConnectionConfig {\n /**\n * Billing Choice renderer configured in Play Console. Available in OpenIAP\n * Spec 2.1.0 / openiap-google 2.3.0 (requires Play Billing 9.1.0+).\n * GOOGLE_RENDERED registers the developer-provided billing listener so OpenIAP\n * can emit the selection event. DEVELOPER_RENDERED omits that listener so the\n * app can render its own choice screen and use the reporting/dialog/link APIs.\n * Must match choiceScreenType returned by isBillingProgramAvailableAndroid.\n * Defaults to GOOGLE_RENDERED.\n */\n billingChoiceScreenTypeAndroid?: (BillingChoiceScreenTypeAndroid | null);\n /**\n * Enable a specific billing program for Android (7.0+)\n * When set, enables the specified billing program for external transactions.\n * - USER_CHOICE_BILLING: User can select between Google Play or alternative (7.0+)\n * - EXTERNAL_CONTENT_LINK: Link to external content (introduced in 8.2.0; use 8.2.1+)\n * - EXTERNAL_OFFER: External offers for digital content (introduced in 8.2.0; use 8.2.1+)\n * - EXTERNAL_PAYMENTS: Developer provided billing, Japan only (8.3.0+)\n * - BILLING_CHOICE: Google-rendered or developer-rendered billing choice\n * (OpenIAP Spec 2.1.0 / openiap-google 2.3.0; requires Play Billing 9.1.0+)\n */\n enableBillingProgramAndroid?: (BillingProgramAndroid | null);\n}\n\n/**\n * Installment plan details for subscription offers (Android)\n * Contains information about the installment plan commitment.\n * Available in Google Play Billing Library 7.0+\n */\nexport interface InstallmentPlanDetailsAndroid {\n /**\n * Committed payments count after a user signs up for this subscription plan.\n * For example, for a monthly subscription with commitmentPaymentsCount of 12,\n * users will be charged monthly for 12 months after signup.\n */\n commitmentPaymentsCount: number;\n /**\n * Subsequent committed payments count after the subscription plan renews.\n * For example, for a monthly subscription with subsequentCommitmentPaymentsCount of 12,\n * users will be committed to another 12 monthly payments when the plan renews.\n * Returns 0 if the installment plan has no subsequent commitment (reverts to normal plan).\n */\n subsequentCommitmentPaymentsCount: number;\n}\n\n/**\n * Parameters for launching an external link (Android)\n * Used with launchExternalLink to initiate external offer, app install, or\n * developer-rendered Billing Choice flows\n * Available in Google Play Billing Library 8.2.0+\n */\nexport interface LaunchExternalLinkParamsAndroid {\n /** The billing program (EXTERNAL_CONTENT_LINK, EXTERNAL_OFFER, or BILLING_CHOICE) */\n billingProgram: BillingProgramAndroid;\n /**\n * External transaction token for a developer-rendered Billing Choice external-link\n * flow. Available in OpenIAP Spec 2.1.0 / openiap-google 2.3.0\n * (requires Play Billing 9.1.0+). Generate it with createBillingProgramReportingDetailsAndroid.\n */\n externalTransactionToken?: (string | null);\n /** The external link launch mode */\n launchMode: ExternalLinkLaunchModeAndroid;\n /** The type of the external link */\n linkType: ExternalLinkTypeAndroid;\n /** The URI where the content will be accessed from */\n linkUri: string;\n}\n\n/**\n * Limited quantity information for one-time purchase offers (Android)\n * Available in Google Play Billing Library 8.0+\n */\nexport interface LimitedQuantityInfoAndroid {\n /** Maximum quantity a user can purchase */\n maximumQuantity: number;\n /** Remaining quantity the user can still purchase */\n remainingQuantity: number;\n}\n\nexport interface Mutation {\n /**\n * Acknowledge a non-consumable purchase. Required within 3 days or Google auto-refunds.\n * See: https://openiap.dev/docs/apis/android/acknowledge-purchase-android\n */\n acknowledgePurchaseAndroid: Promise<boolean>;\n /**\n * Present the refund request sheet (iOS 15+). See also Features → Refund.\n * See: https://openiap.dev/docs/apis/ios/begin-refund-request-ios\n */\n beginRefundRequestIOS?: Promise<(string | null)>;\n /**\n * Clear pending transactions in the queue (sandbox helper).\n * See: https://openiap.dev/docs/apis/ios/clear-transaction-ios\n */\n clearTransactionIOS: Promise<boolean>;\n /**\n * Consume a consumable purchase so it can be re-bought.\n * See: https://openiap.dev/docs/apis/android/consume-purchase-android\n */\n consumePurchaseAndroid: Promise<boolean>;\n /**\n * Create the reporting details and external transaction token required by a billing program.\n * Introduced in Play Billing 8.2.0. External Offer and External Content Link integrations\n * must use 8.2.1+ and create fresh details immediately before every redirect session;\n * do not cache the token for a later redirect. The same token may report multiple purchases\n * made during one External Offer session.\n * Replaces the deprecated createExternalOfferReportingDetailsAsync API.\n * Returns external transaction token needed for reporting external transactions.\n * developerBillingType is optional. When program is BILLING_CHOICE and developerBillingType is omitted,\n * native Android defaults it to IN_APP.\n * The Billing Choice extension is available in OpenIAP Spec 2.1.0 /\n * openiap-google 2.3.0 (requires Play Billing 9.1.0+).\n * Throws OpenIapError.NotPrepared if billing client not ready.\n * See: https://openiap.dev/docs/apis/android/create-billing-program-reporting-details-android\n */\n createBillingProgramReportingDetailsAndroid: Promise<BillingProgramReportingDetailsAndroid>;\n /**\n * Open the platform's subscription management UI.\n * See: https://openiap.dev/docs/apis/deep-link-to-subscriptions\n */\n deepLinkToSubscriptions: Promise<void>;\n /**\n * Close the store connection and release resources.\n * See: https://openiap.dev/docs/apis/end-connection\n */\n endConnection: Promise<boolean>;\n /**\n * Complete a transaction after server-side verification. Required on Android within 3 days.\n * See: https://openiap.dev/docs/apis/finish-transaction\n */\n finishTransaction: Promise<void>;\n /**\n * Initialize the store connection. Call before any IAP API.\n * See: https://openiap.dev/docs/apis/init-connection\n */\n initConnection: Promise<boolean>;\n /**\n * Check whether a billing program (e.g., External Payments) is available for the current user.\n * Replaces the deprecated isExternalOfferAvailableAsync API.\n * Introduced in Google Play Billing Library 8.2.0. External Offer and External\n * Content Link integrations must use 8.2.1+ because 8.2.1 fixes this API.\n * Returns availability result with isAvailable flag.\n * Throws OpenIapError.NotPrepared if billing client not ready.\n * See: https://openiap.dev/docs/apis/android/is-billing-program-available-android\n */\n isBillingProgramAvailableAndroid: Promise<BillingProgramAvailabilityResultAndroid>;\n /**\n * Launch an external content/offer link from inside the Billing Programs flow (introduced in\n * Play Billing 8.2.0; External Offer and External Content Link require 8.2.1+),\n * including developer-rendered Billing Choice external-link flows.\n * Billing Choice availability: OpenIAP Spec 2.1.0 / openiap-google 2.3.0\n * (requires Play Billing 9.1.0+).\n * Replaces the deprecated showExternalOfferInformationDialog API.\n * Shows Play Store dialog and optionally launches external URL.\n * Throws OpenIapError.NotPrepared if billing client not ready.\n * See: https://openiap.dev/docs/apis/android/launch-external-link-android\n */\n launchExternalLinkAndroid: Promise<boolean>;\n /**\n * Open the Google Play offer/promo code redemption flow so the user can enter a code.\n * On Google Play builds, launches the Play Store redeem page\n * (https://play.google.com/redeem). A purchase listener can receive the redeemed\n * purchase while the app is running with an active billing connection; always\n * reconcile with getAvailablePurchases when the app resumes.\n * Does not require the billing client to be initialized (no Play Billing version requirement).\n * Available in OpenIAP Spec 2.4.2 / openiap-google 2.5.0.\n * Android counterpart of presentCodeRedemptionSheetIOS.\n * Returns true when the redemption flow was launched, or false when the current\n * store flavor does not provide an equivalent redemption flow.\n * See: https://openiap.dev/docs/apis/android/open-redeem-offer-code-android\n */\n openRedeemOfferCodeAndroid: Promise<boolean>;\n /**\n * Show the App Store offer code redemption sheet.\n * When built with Xcode 27+ and running on iOS 27+, Mac Catalyst 27+, or\n * visionOS 27+, returns the verified transaction produced by the redemption.\n * StoreKit 2's scene-based sheet returns null after presentation on iOS 16–26,\n * visionOS 1–26, and those platforms on Apple 27 when built with an older SDK.\n * iOS 15 uses the StoreKit 1 sheet and also returns null. On Mac Catalyst, the\n * scene-based API throws StoreKitError.unknown, while the Catalyst 15 StoreKit 1\n * call has no effect and returns null. Reconcile null results from a presented\n * sheet through the normal transaction listener or an explicit\n * available-purchases refresh.\n * See: https://openiap.dev/docs/apis/ios/present-code-redemption-sheet-ios\n */\n presentCodeRedemptionSheetIOS?: Promise<(PurchaseIOS | null)>;\n /**\n * Present an external purchase link, StoreKit External (iOS 16+).\n * See: https://openiap.dev/docs/apis/ios/present-external-purchase-link-ios\n */\n presentExternalPurchaseLinkIOS: Promise<ExternalPurchaseLinkResultIOS>;\n /**\n * Present the external purchase notice sheet (iOS 17.4+).\n * Uses ExternalPurchase.presentNoticeSheet() which returns a token when the user continues.\n * Reference: https://developer.apple.com/documentation/storekit/externalpurchase/presentnoticesheet()\n * See: https://openiap.dev/docs/apis/ios/present-external-purchase-notice-sheet-ios\n */\n presentExternalPurchaseNoticeSheetIOS: Promise<ExternalPurchaseNoticeResultIOS>;\n /**\n * Initiate a purchase or subscription flow; rely on events for final state.\n * See: https://openiap.dev/docs/apis/request-purchase\n */\n requestPurchase?: Promise<(Purchase | Purchase[] | null)>;\n /**\n * Restore non-consumable and active subscription purchases.\n * See: https://openiap.dev/docs/apis/restore-purchases\n */\n restorePurchases: Promise<void>;\n /**\n * Show Google's mandatory information dialog before a developer-rendered,\n * in-app Billing Choice screen.\n * OpenIAP availability: Spec 2.1.0 / openiap-google 2.3.0 (requires Play Billing 9.1.0+).\n * Throws OpenIapError.NotPrepared if billing client not ready.\n * See: https://openiap.dev/docs/apis/android/show-billing-program-information-dialog-android\n */\n showBillingProgramInformationDialogAndroid: Promise<BillingResultAndroid>;\n /**\n * Present the disclosure sheet required before linking out via ExternalPurchaseCustomLink (iOS 18.1+).\n * Call this after a deliberate customer interaction before linking out to external purchases.\n * Reference: https://developer.apple.com/documentation/storekit/externalpurchasecustomlink/shownotice(type:)\n * See: https://openiap.dev/docs/apis/ios/show-external-purchase-custom-link-notice-ios\n */\n showExternalPurchaseCustomLinkNoticeIOS: Promise<ExternalPurchaseCustomLinkNoticeResultIOS>;\n /**\n * Overlay Play billing in-app messages, such as payment issues or subscription price-change confirmations.\n * OpenIAP availability: Spec 2.1.0 / openiap-google 2.3.0\n * (upstream API available since Play Billing 4.1.0).\n * Returns a response code and, when the subscription status changes, the related purchase token.\n * Throws OpenIapError.NotPrepared if billing client not ready.\n * See: https://openiap.dev/docs/apis/android/show-in-app-messages-android\n */\n showInAppMessagesAndroid: Promise<InAppMessageResultAndroid>;\n /**\n * Present the manage-subscriptions sheet and return changed purchases (iOS 15+).\n * See: https://openiap.dev/docs/apis/ios/show-manage-subscriptions-ios\n */\n showManageSubscriptionsIOS: Promise<PurchaseIOS[]>;\n /**\n * Force sync transactions with the App Store (iOS 15+).\n * See: https://openiap.dev/docs/apis/ios/sync-ios\n */\n syncIOS: Promise<boolean>;\n /**\n * Verify a purchase against your own backend. Returns a platform-specific\n * variant of VerifyPurchaseResult — VerifyPurchaseResultIOS exposes isValid\n * + receipt/JWS metadata, VerifyPurchaseResultAndroid carries Play Store\n * receipt fields (no isValid), and VerifyPurchaseResultHorizon uses success.\n * Inspect the concrete variant before reading fields.\n * See: https://openiap.dev/docs/features/validation#verify-purchase\n */\n verifyPurchase: Promise<VerifyPurchaseResult>;\n /**\n * Verify via a managed provider without standing up your own server. The\n * PurchaseVerificationProvider enum currently exposes only IAPKit; platform\n * availability may differ by implementation.\n * See: https://openiap.dev/docs/features/validation#verify-purchase-with-provider\n */\n verifyPurchaseWithProvider: Promise<VerifyPurchaseWithProviderResult>;\n}\n\nexport type MutationAcknowledgePurchaseAndroidArgs = string;\n\nexport type MutationBeginRefundRequestIosArgs = string;\n\nexport type MutationConsumePurchaseAndroidArgs = string;\n\nexport interface MutationCreateBillingProgramReportingDetailsAndroidArgs {\n developerBillingType?: (DeveloperBillingTypeAndroid | null);\n program: BillingProgramAndroid;\n}\n\nexport type MutationDeepLinkToSubscriptionsArgs = (DeepLinkOptions | null) | undefined;\n\nexport interface MutationFinishTransactionArgs {\n isConsumable?: (boolean | null);\n purchase: PurchaseInput;\n}\n\nexport type MutationInitConnectionArgs = (InitConnectionConfig | null) | undefined;\n\nexport type MutationIsBillingProgramAvailableAndroidArgs = BillingProgramAndroid;\n\nexport type MutationLaunchExternalLinkAndroidArgs = LaunchExternalLinkParamsAndroid;\n\nexport type MutationPresentExternalPurchaseLinkIosArgs = string;\n\nexport type MutationRequestPurchaseArgs = RequestPurchaseProps;\n\nexport type MutationShowBillingProgramInformationDialogAndroidArgs = BillingProgramInformationDialogParamsAndroid;\n\nexport type MutationShowExternalPurchaseCustomLinkNoticeIosArgs = ExternalPurchaseCustomLinkNoticeTypeIOS;\n\nexport type MutationShowInAppMessagesAndroidArgs = (InAppMessageParamsAndroid | null) | undefined;\n\nexport type MutationVerifyPurchaseArgs = VerifyPurchaseProps;\n\nexport type MutationVerifyPurchaseWithProviderArgs = VerifyPurchaseWithProviderProps;\n\n/**\n * Payment mode for subscription offers.\n * Determines how the user pays during the offer period.\n */\nexport type PaymentMode = 'free-trial' | 'pay-as-you-go' | 'pay-up-front' | 'unknown';\n\nexport type PaymentModeIOS = 'empty' | 'free-trial' | 'pay-as-you-go' | 'pay-up-front';\n\n/**\n * Pending purchase update for subscription upgrades/downgrades (Android)\n * When a user initiates a subscription change (upgrade/downgrade), the new purchase\n * may be pending until the current billing period ends. This type contains the\n * details of the pending change.\n * Available in Google Play Billing Library 5.0+\n */\nexport interface PendingPurchaseUpdateAndroid {\n /**\n * Product IDs for the pending purchase update.\n * These are the new products the user is switching to.\n */\n products: string[];\n /**\n * Purchase token for the pending transaction.\n * Use this token to track or manage the pending purchase update.\n */\n purchaseToken: string;\n}\n\n/**\n * Pre-order details for one-time purchase products (Android)\n * Available in Google Play Billing Library 8.1.0+\n */\nexport interface PreorderDetailsAndroid {\n /**\n * Pre-order presale end time in milliseconds since epoch.\n * This is when the presale period ends and the product will be released.\n */\n preorderPresaleEndTimeMillis: string;\n /**\n * Pre-order release time in milliseconds since epoch.\n * This is when the product will be available to users who pre-ordered.\n */\n preorderReleaseTimeMillis: string;\n}\n\nexport interface PricingPhaseAndroid {\n billingCycleCount: number;\n billingPeriod: string;\n formattedPrice: string;\n priceAmountMicros: string;\n priceCurrencyCode: string;\n recurrenceMode: number;\n}\n\nexport interface PricingPhasesAndroid {\n pricingPhaseList: PricingPhaseAndroid[];\n}\n\nexport type Product = ProductAndroid | ProductIOS;\n\nexport interface ProductAndroid extends ProductCommon {\n currency: string;\n debugDescription?: (string | null);\n description: string;\n /**\n * Standardized Android one-time product purchase options and offers.\n * Native metadata uses Android-suffixed fields.\n * @see https://openiap.dev/docs/types/discount-offer\n */\n discountOffers?: (DiscountOffer[] | null);\n displayName?: (string | null);\n displayPrice: string;\n id: string;\n nameAndroid: string;\n platform: 'android';\n price?: (number | null);\n /**\n * Product-level status code indicating fetch result (Android 8.0+)\n * OK = product fetched successfully\n * NOT_FOUND = SKU doesn't exist\n * NO_OFFERS_AVAILABLE = user not eligible for any offers\n * Available in Google Play Billing Library 8.0.0+\n */\n productStatusAndroid?: (ProductStatusAndroid | null);\n /**\n * Standardized subscription offers.\n * Cross-platform type with Android-specific fields using suffix.\n * @see https://openiap.dev/docs/types/subscription-offer\n */\n subscriptionOffers?: (SubscriptionOffer[] | null);\n title: string;\n type: 'in-app';\n}\n\nexport interface ProductCommon {\n currency: string;\n debugDescription?: (string | null);\n description: string;\n displayName?: (string | null);\n displayPrice: string;\n id: string;\n platform: 'android' | 'ios';\n price?: (number | null);\n title: string;\n type: 'in-app' | 'subs';\n} \n\nexport interface ProductIOS extends ProductCommon {\n currency: string;\n debugDescription?: (string | null);\n description: string;\n displayName?: (string | null);\n displayNameIOS: string;\n displayPrice: string;\n id: string;\n isFamilyShareableIOS: boolean;\n jsonRepresentationIOS: string;\n platform: 'ios';\n price?: (number | null);\n /**\n * iOS 26.4+ subscription pricing terms, including billing plan metadata for\n * monthly subscriptions with a 12-month commitment.\n */\n pricingTermsIOS?: (SubscriptionPricingTermsIOS[] | null);\n /**\n * Standardized subscription offers.\n * Cross-platform type with iOS-specific fields using suffix.\n * Note: iOS does not support one-time product discounts.\n * @see https://openiap.dev/docs/types/subscription-offer\n */\n subscriptionOffers?: (SubscriptionOffer[] | null);\n title: string;\n type: 'in-app';\n typeIOS: ProductTypeIOS;\n}\n\nexport type ProductOrSubscription = Product | ProductSubscription;\n\nexport type ProductQueryType = 'in-app' | 'subs' | 'all';\n\nexport interface ProductRequest {\n skus: string[];\n type?: (ProductQueryType | null);\n}\n\n/**\n * Status code for individual products returned from queryProductDetailsAsync (Android)\n * Prior to 8.0, products that couldn't be fetched were simply not returned.\n * With 8.0+, these products are returned with a status code explaining why.\n * Available in Google Play Billing Library 8.0.0+\n */\nexport type ProductStatusAndroid = 'ok' | 'not-found' | 'no-offers-available' | 'unknown';\n\nexport type ProductSubscription = ProductSubscriptionAndroid | ProductSubscriptionIOS;\n\nexport interface ProductSubscriptionAndroid extends ProductCommon {\n currency: string;\n debugDescription?: (string | null);\n description: string;\n displayName?: (string | null);\n displayPrice: string;\n id: string;\n nameAndroid: string;\n platform: 'android';\n price?: (number | null);\n /**\n * Product-level status code indicating fetch result (Android 8.0+)\n * OK = product fetched successfully\n * NOT_FOUND = SKU doesn't exist\n * NO_OFFERS_AVAILABLE = user not eligible for any offers\n * Available in Google Play Billing Library 8.0.0+\n */\n productStatusAndroid?: (ProductStatusAndroid | null);\n /**\n * Standardized subscription offers.\n * Cross-platform type with Android-specific fields using suffix.\n * @see https://openiap.dev/docs/types/subscription-offer\n */\n subscriptionOffers: SubscriptionOffer[];\n title: string;\n type: 'subs';\n}\n\nexport interface ProductSubscriptionIOS extends ProductCommon {\n /**\n * Subscriptions included in this Apple subscription bundle. Empty or null for\n * every other product type (Apple 27+ beta).\n */\n bundledSubscriptionsIOS?: (BundledSubscriptionIOS[] | null);\n currency: string;\n debugDescription?: (string | null);\n description: string;\n displayName?: (string | null);\n displayNameIOS: string;\n displayPrice: string;\n id: string;\n introductoryPriceAsAmountIOS?: (string | null);\n introductoryPriceIOS?: (string | null);\n introductoryPriceNumberOfPeriodsIOS?: (string | null);\n introductoryPricePaymentModeIOS: PaymentModeIOS;\n introductoryPriceSubscriptionPeriodIOS?: (SubscriptionPeriodIOS | null);\n isFamilyShareableIOS: boolean;\n jsonRepresentationIOS: string;\n platform: 'ios';\n price?: (number | null);\n /**\n * iOS 26.4+ subscription pricing terms, including billing plan metadata for\n * monthly subscriptions with a 12-month commitment.\n */\n pricingTermsIOS?: (SubscriptionPricingTermsIOS[] | null);\n /** App Store subscription group identifier for intro-offer eligibility checks. */\n subscriptionGroupIdIOS?: (string | null);\n /**\n * Standardized subscription offers.\n * Cross-platform type with iOS-specific fields using suffix.\n * @see https://openiap.dev/docs/types/subscription-offer\n */\n subscriptionOffers?: (SubscriptionOffer[] | null);\n subscriptionPeriodNumberIOS?: (string | null);\n subscriptionPeriodUnitIOS?: (SubscriptionPeriodIOS | null);\n title: string;\n type: 'subs';\n typeIOS: ProductTypeIOS;\n}\n\nexport type ProductType = 'in-app' | 'subs';\n\nexport type ProductTypeIOS = 'consumable' | 'non-consumable' | 'auto-renewable-subscription' | 'non-renewing-subscription' | 'subscription-bundle' | 'subscription-suite';\n\n/**\n * JWS promotional offer input for iOS 15+ (StoreKit 2, WWDC 2025).\n * New signature format using compact JWS string for promotional offers.\n * This provides a simpler alternative to the legacy signature-based promotional offers.\n * Back-deployed to iOS 15.\n */\nexport interface PromotionalOfferJwsInputIOS {\n /**\n * Compact JWS string signed by your server.\n * The JWS should contain the promotional offer signature data.\n * Format: header.payload.signature (base64url encoded)\n */\n jws: string;\n /** The promotional offer identifier from App Store Connect */\n offerId: string;\n}\n\nexport type Purchase = PurchaseAndroid | PurchaseIOS;\n\nexport interface PurchaseAndroid extends PurchaseCommon {\n autoRenewingAndroid?: (boolean | null);\n currentPlanId?: (string | null);\n dataAndroid?: (string | null);\n developerPayloadAndroid?: (string | null);\n id: string;\n ids?: (string[] | null);\n isAcknowledgedAndroid?: (boolean | null);\n isAutoRenewing: boolean;\n /**\n * Whether the subscription is suspended (Android)\n * A suspended subscription means the user's payment method failed and they need to fix it.\n * Users should be directed to the subscription center to resolve the issue.\n * Do NOT grant entitlements for suspended subscriptions.\n * Available in Google Play Billing Library 8.1.0+\n */\n isSuspendedAndroid?: (boolean | null);\n obfuscatedAccountIdAndroid?: (string | null);\n obfuscatedProfileIdAndroid?: (string | null);\n packageNameAndroid?: (string | null);\n /**\n * Pending purchase update for uncommitted subscription upgrade/downgrade (Android)\n * Contains the new products and purchase token for the pending transaction.\n * Returns null if no pending update exists.\n * Available in Google Play Billing Library 5.0+\n */\n pendingPurchaseUpdateAndroid?: (PendingPurchaseUpdateAndroid | null);\n productId: string;\n purchaseState: PurchaseState;\n purchaseToken?: (string | null);\n quantity: number;\n signatureAndroid?: (string | null);\n /** Store where purchase was made */\n store: IapStore;\n /** Unix timestamp in milliseconds since January 1, 1970 UTC. */\n transactionDate: number;\n transactionId?: (string | null);\n /**\n * Amazon Appstore user id (PurchaseResponse.getUserData().getUserId()).\n * Only populated on the Amazon flavor; required for server-side Amazon RVS\n * receipt verification (userId + receiptId). Null on Google Play and Horizon.\n */\n userIdAmazon?: (string | null);\n /**\n * Amazon Appstore marketplace (PurchaseResponse.getUserData().getMarketplace()),\n * for example \"US\" or \"FR\". Only populated on the Amazon flavor.\n */\n userMarketplaceAmazon?: (string | null);\n}\n\nexport interface PurchaseCommon {\n /**\n * The current plan identifier. This is:\n * - On Android: the basePlanId (e.g., \"premium\", \"premium-year\")\n * - On iOS: the productId (e.g., \"com.example.premium_monthly\", \"com.example.premium_yearly\")\n * This provides a unified way to identify which specific plan/tier the user is subscribed to.\n */\n currentPlanId?: (string | null);\n id: string;\n ids?: (string[] | null);\n isAutoRenewing: boolean;\n productId: string;\n purchaseState: PurchaseState;\n /** Unified purchase token (iOS JWS, Android purchaseToken) */\n purchaseToken?: (string | null);\n quantity: number;\n /** Store where purchase was made */\n store: IapStore;\n /** Unix timestamp in milliseconds since January 1, 1970 UTC. */\n transactionDate: number;\n}\n\nexport interface PurchaseError {\n code: ErrorCode;\n debugMessage?: (string | null);\n isEmptyProductList?: (boolean | null);\n message: string;\n productId?: (string | null);\n productIds?: (string[] | null);\n productType?: (string | null);\n responseCode?: (number | null);\n subResponseCodeAndroid?: (SubResponseCodeAndroid | null);\n}\n\nexport interface PurchaseIOS extends PurchaseCommon {\n /**\n * Advanced Commerce API metadata (iOS 18.4+).\n * Present only for transactions that use the Advanced Commerce API.\n * Contains item details, tax information, and refund data for generic SKU purchases.\n */\n advancedCommerceInfoIOS?: (AdvancedCommerceInfoIOS | null);\n appAccountToken?: (string | null);\n appBundleIdIOS?: (string | null);\n /** iOS 26.4+ billing plan selected for this transaction. */\n billingPlanTypeIOS?: (SubscriptionBillingPlanTypeIOS | null);\n /**\n * Original transaction identifier for the subscription bundle that produced\n * this transaction (Apple 27+ SDK; back-deployed by StoreKit).\n */\n bundleOriginalTransactionIdIOS?: (string | null);\n /** Product identifier of the subscription bundle that produced this transaction. */\n bundleProductIdIOS?: (string | null);\n /** Subscription-group identifier of the bundle that produced this transaction. */\n bundleSubscriptionGroupIdIOS?: (string | null);\n /** Bundle transaction identifier associated with this component transaction. */\n bundleTransactionIdIOS?: (string | null);\n /** iOS 26.4+ progress information for monthly subscriptions with a 12-month commitment. */\n commitmentInfoIOS?: (TransactionCommitmentInfoIOS | null);\n countryCodeIOS?: (string | null);\n currencyCodeIOS?: (string | null);\n currencySymbolIOS?: (string | null);\n currentPlanId?: (string | null);\n environmentIOS?: (string | null);\n expirationDateIOS?: (number | null);\n id: string;\n ids?: (string[] | null);\n isAutoRenewing: boolean;\n isUpgradedIOS?: (boolean | null);\n offerIOS?: (PurchaseOfferIOS | null);\n originalTransactionDateIOS?: (number | null);\n originalTransactionIdentifierIOS?: (string | null);\n /** StoreKit ownership raw value. Xcode 27 adds the back-deployed assigned value. */\n ownershipTypeIOS?: (string | null);\n /**\n * Original transaction identifier replaced when moving between a standalone\n * subscription and a subscription bundle.\n */\n previousOriginalTransactionIdIOS?: (string | null);\n productId: string;\n purchaseState: PurchaseState;\n purchaseToken?: (string | null);\n quantity: number;\n quantityIOS?: (number | null);\n reasonIOS?: (string | null);\n reasonStringRepresentationIOS?: (string | null);\n renewalInfoIOS?: (RenewalInfoIOS | null);\n revocationDateIOS?: (number | null);\n /** Normalized StoreKit revocation reason, including upgraded_to_bundle. */\n revocationReasonIOS?: (string | null);\n /**\n * StoreKit revocation type, including assignment-revocation on Apple 26.4+\n * when compiled with the Xcode 27 SDK.\n */\n revocationTypeIOS?: (string | null);\n /** Store where purchase was made */\n store: IapStore;\n storefrontCountryCodeIOS?: (string | null);\n subscriptionGroupIdIOS?: (string | null);\n /** Unix timestamp in milliseconds since January 1, 1970 UTC. */\n transactionDate: number;\n transactionId: string;\n transactionReasonIOS?: (string | null);\n webOrderLineItemIdIOS?: (string | null);\n}\n\nexport type PurchaseInput = Purchase;\n\nexport interface PurchaseOfferIOS {\n id: string;\n paymentMode: string;\n type: string;\n}\n\nexport interface PurchaseOptions {\n /** Also emit results through the iOS event listeners */\n alsoPublishToEventListenerIOS?: (boolean | null);\n /**\n * Include suspended subscriptions in the result (Android 8.1+).\n * Suspended subscriptions have isSuspendedAndroid=true and should NOT be granted entitlements.\n * Users should be directed to the subscription center to resolve payment issues.\n * Default: false (only active subscriptions are returned)\n */\n includeSuspendedAndroid?: (boolean | null);\n /** Limit to currently active items on iOS */\n onlyIncludeActiveItemsIOS?: (boolean | null);\n}\n\nexport type PurchaseState = 'pending' | 'purchased' | 'unknown';\n\nexport interface PurchaseUpdatedListenerOptions {\n /**\n * iOS only. Defaults to true. When false, listener callbacks also receive\n * StoreKit replay events for a transaction ID that was already emitted during\n * the current connection session. Android ignores this option.\n */\n dedupeTransactionIOS?: (boolean | null);\n}\n\nexport type PurchaseVerificationProvider = 'iapkit';\n\nexport interface Query {\n /**\n * Check eligibility for the external purchase notice sheet (iOS 17.4+).\n * Uses ExternalPurchase.canPresent.\n * See: https://openiap.dev/docs/apis/ios/can-present-external-purchase-notice-ios\n */\n canPresentExternalPurchaseNoticeIOS: Promise<boolean>;\n /**\n * Get the user's current entitlement for a product, using StoreKit 2 (iOS 15+).\n * See: https://openiap.dev/docs/apis/ios/current-entitlement-ios\n */\n currentEntitlementIOS?: Promise<(PurchaseIOS | null)>;\n /**\n * Fetch products or subscriptions from the store.\n * See: https://openiap.dev/docs/apis/fetch-products\n */\n fetchProducts: Promise<(ProductOrSubscription[] | Product[] | ProductSubscription[] | null)>;\n /**\n * Get details of all currently active subscriptions (filters by subscriptionIds when provided).\n * See: https://openiap.dev/docs/apis/get-active-subscriptions\n */\n getActiveSubscriptions: Promise<ActiveSubscription[]>;\n /**\n * List every StoreKit transaction (finished + unfinished) for the current user.\n * Requires the SKIncludeConsumableInAppPurchaseHistory Info.plist key in the host app\n * for finished consumables to be included (iOS 18+).\n * Unlike getAvailablePurchases, always returns the iOS-specific PurchaseIOS shape.\n * See: https://openiap.dev/docs/apis/ios/get-all-transactions-ios\n */\n getAllTransactionsIOS: Promise<PurchaseIOS[]>;\n /**\n * Fetch the app transaction (iOS 16+).\n * See: https://openiap.dev/docs/apis/ios/get-app-transaction-ios\n */\n getAppTransactionIOS?: Promise<(AppTransaction | null)>;\n /**\n * List active purchases for the current user.\n * See: https://openiap.dev/docs/apis/get-available-purchases\n */\n getAvailablePurchases: Promise<Purchase[]>;\n /**\n * Fetch Play Billing assets and loyalty text for developer-rendered Billing Choice screens.\n * OpenIAP availability: Spec 2.1.0 / openiap-google 2.3.0 (requires Play Billing 9.1.0+).\n * Throws OpenIapError.NotPrepared if billing client is not ready.\n * See: https://openiap.dev/docs/apis/android/get-billing-choice-info-android\n */\n getBillingChoiceInfoAndroid: Promise<BillingChoiceInfoAndroid>;\n /**\n * Fetch a token for Apple's External Purchase Server reporting API (iOS 18.1+).\n * Use this token to report transactions made through ExternalPurchaseCustomLink.\n * Reference: https://developer.apple.com/documentation/storekit/externalpurchasecustomlink/token(for:)\n * See: https://openiap.dev/docs/apis/ios/get-external-purchase-custom-link-token-ios\n */\n getExternalPurchaseCustomLinkTokenIOS: Promise<ExternalPurchaseCustomLinkTokenResultIOS>;\n /**\n * List unfinished StoreKit transactions in the queue.\n * See: https://openiap.dev/docs/apis/ios/get-pending-transactions-ios\n */\n getPendingTransactionsIOS: Promise<PurchaseIOS[]>;\n /**\n * Read the App Store-promoted product, if any (iOS 15+).\n * OpenIAP consumes PurchaseIntent.intents on iOS 16.4+ and uses the\n * StoreKit 1 observer only on iOS 15–16.3. When PurchaseIntent carries an\n * externally redeemed win-back offer, OpenIAP preserves it for the next\n * matching requestPurchase unless the caller supplies an explicit win-back or\n * promotional offer.\n * See: https://openiap.dev/docs/apis/ios/get-promoted-product-ios\n */\n getPromotedProductIOS?: Promise<(ProductIOS | null)>;\n /**\n * Get base64-encoded receipt data (legacy validation).\n * See: https://openiap.dev/docs/apis/ios/get-receipt-data-ios\n */\n getReceiptDataIOS?: Promise<(string | null)>;\n /**\n * Return the store-authoritative country code: ISO 3166-1 alpha-3 on Apple\n * platforms and alpha-2 on Android. The operation fails when the store cannot\n * provide a value; implementations must not synthesize a locale fallback.\n * See: https://openiap.dev/docs/apis/get-storefront\n */\n getStorefront: Promise<string>;\n /**\n * Return the JWS string for a transaction (StoreKit 2).\n * See: https://openiap.dev/docs/apis/ios/get-transaction-jws-ios\n */\n getTransactionJwsIOS?: Promise<(string | null)>;\n /**\n * Check whether the user has any active subscription.\n * See: https://openiap.dev/docs/apis/has-active-subscriptions\n */\n hasActiveSubscriptions: Promise<boolean>;\n /**\n * Check eligibility for the custom-link variant of external purchase (iOS 18.1+).\n * Returns true if the app can use custom external purchase links.\n * Reference: https://developer.apple.com/documentation/storekit/externalpurchasecustomlink/iseligible\n * See: https://openiap.dev/docs/apis/ios/is-eligible-for-external-purchase-custom-link-ios\n */\n isEligibleForExternalPurchaseCustomLinkIOS: Promise<boolean>;\n /**\n * Check intro-offer eligibility for a subscription group.\n * See: https://openiap.dev/docs/apis/ios/is-eligible-for-intro-offer-ios\n */\n isEligibleForIntroOfferIOS: Promise<boolean>;\n /**\n * Check whether a transaction's JWS verification passed (StoreKit 2).\n * See: https://openiap.dev/docs/apis/ios/is-transaction-verified-ios\n */\n isTransactionVerifiedIOS: Promise<boolean>;\n /**\n * Get the latest verified transaction for a product, using StoreKit 2.\n * See: https://openiap.dev/docs/apis/ios/latest-transaction-ios\n */\n latestTransactionIOS?: Promise<(PurchaseIOS | null)>;\n /**\n * Get subscription status objects from StoreKit 2 (iOS 15+).\n * See: https://openiap.dev/docs/apis/ios/subscription-status-ios\n */\n subscriptionStatusIOS: Promise<SubscriptionStatusIOS[]>;\n}\n\nexport type QueryCurrentEntitlementIosArgs = string;\n\nexport type QueryFetchProductsArgs = ProductRequest;\n\nexport type QueryGetActiveSubscriptionsArgs = (string[] | null) | undefined;\n\nexport type QueryGetAvailablePurchasesArgs = (PurchaseOptions | null) | undefined;\n\nexport type QueryGetBillingChoiceInfoAndroidArgs = GetBillingChoiceInfoParamsAndroid;\n\nexport type QueryGetExternalPurchaseCustomLinkTokenIosArgs = ExternalPurchaseCustomLinkTokenTypeIOS;\n\nexport type QueryGetTransactionJwsIosArgs = string;\n\nexport type QueryHasActiveSubscriptionsArgs = (string[] | null) | undefined;\n\nexport type QueryIsEligibleForIntroOfferIosArgs = string;\n\nexport type QueryIsTransactionVerifiedIosArgs = string;\n\nexport type QueryLatestTransactionIosArgs = string;\n\nexport type QuerySubscriptionStatusIosArgs = string;\n\nexport interface RefundResultIOS {\n message?: (string | null);\n status: string;\n}\n\nexport interface RenewalCommitmentInfoIOS {\n commitmentAutoRenewProductId: string;\n commitmentAutoRenewStatus: boolean;\n commitmentRenewalBillingPlanType: SubscriptionBillingPlanTypeIOS;\n commitmentRenewalDate: number;\n commitmentRenewalPrice: number;\n}\n\n/**\n * Subscription renewal information from Product.SubscriptionInfo.RenewalInfo\n * https://developer.apple.com/documentation/storekit/product/subscriptioninfo/renewalinfo\n */\nexport interface RenewalInfoIOS {\n autoRenewPreference?: (string | null);\n /** Original transaction identifier for the bundle used by the next renewal. */\n bundleOriginalTransactionId?: (string | null);\n /** Product identifier for the bundle used by the next renewal. */\n bundleProductId?: (string | null);\n /** Subscription-group identifier for the bundle used by the next renewal. */\n bundleSubscriptionGroupId?: (string | null);\n /**\n * iOS 26.4+ renewal commitment metadata for monthly subscriptions with a\n * 12-month commitment.\n */\n commitmentInfo?: (RenewalCommitmentInfoIOS | null);\n /**\n * StoreKit's raw integer expiration-reason value represented as a string.\n * Xcode 27 adds the back-deployed unbundled case. Preserve unknown future values.\n */\n expirationReason?: (string | null);\n /**\n * Grace period expiration date (milliseconds since epoch)\n * When set, subscription is in grace period (billing issue but still has access)\n */\n gracePeriodExpirationDate?: (number | null);\n /**\n * True if subscription failed to renew due to billing issue and is retrying\n * StoreKit exposes this directly as RenewalInfo.isInBillingRetry.\n */\n isInBillingRetry?: (boolean | null);\n jsonRepresentation?: (string | null);\n /**\n * Product ID that will be used on next renewal (when user upgrades/downgrades)\n * If set and different from current productId, subscription will change on expiration\n */\n pendingUpgradeProductId?: (string | null);\n /**\n * User's response to subscription price increase\n * Possible values: \"AGREED\", \"PENDING\", null (no price increase)\n */\n priceIncreaseStatus?: (string | null);\n /** iOS 26.4+ billing plan that will renew after the current period. */\n renewalBillingPlanType?: (SubscriptionBillingPlanTypeIOS | null);\n /**\n * Expected renewal date (milliseconds since epoch)\n * For active subscriptions, when the next renewal/charge will occur\n */\n renewalDate?: (number | null);\n /** Offer ID applied to next renewal (promotional offer, subscription offer code, etc.) */\n renewalOfferId?: (string | null);\n /**\n * Type of offer applied to next renewal\n * Possible values: \"PROMOTIONAL\", \"SUBSCRIPTION_OFFER_CODE\", \"WIN_BACK\", etc.\n */\n renewalOfferType?: (string | null);\n willAutoRenew: boolean;\n /** Whether this subscription will leave its bundle and renew standalone. */\n willUnbundle?: (boolean | null);\n}\n\n/**\n * Rental details for one-time purchase products that can be rented (Android)\n * Available in Google Play Billing Library 8.0+\n */\nexport interface RentalDetailsAndroid {\n /**\n * Rental expiration period in ISO 8601 format\n * Time after rental period ends when user can still extend\n */\n rentalExpirationPeriod?: (string | null);\n /** Rental period in ISO 8601 format (e.g., P7D for 7 days) */\n rentalPeriod: string;\n}\n\nexport interface RequestPurchaseAndroidProps {\n /**\n * Developer billing option parameters for external payments and Billing Choice.\n * Billing Choice is available in OpenIAP Spec 2.1.0 / openiap-google 2.3.0\n * (requires Play Billing 9.1.0+).\n */\n developerBillingOption?: (DeveloperBillingOptionParamsAndroid | null);\n /**\n * Personalized offer flag.\n * When true, indicates the price was customized for this user.\n */\n isOfferPersonalized?: (boolean | null);\n /** Obfuscated account ID */\n obfuscatedAccountId?: (string | null);\n /** Obfuscated profile ID */\n obfuscatedProfileId?: (string | null);\n /**\n * Offer token for one-time purchase discounts (8.0+).\n * Pass the offerToken from discountOffers\n * to apply a discount offer to the purchase.\n */\n offerToken?: (string | null);\n /** List of product SKUs */\n skus: string[];\n}\n\nexport interface RequestPurchaseIosProps {\n /**\n * Advanced commerce data token (iOS 15+).\n * Used with StoreKit 2's Product.PurchaseOption.custom API for passing\n * campaign tokens, affiliate IDs, or other attribution data.\n * The data is formatted as JSON: {\"signatureInfo\": {\"token\": \"<value>\"}}\n */\n advancedCommerceData?: (string | null);\n /** Auto-finish transaction (dangerous) */\n andDangerouslyFinishTransactionAutomatically?: (boolean | null);\n /** App account token for user tracking */\n appAccountToken?: (string | null);\n /** Purchase quantity */\n quantity?: (number | null);\n /** Product SKU */\n sku: string;\n /**\n * Promotional offer to apply (subscriptions only, ignored for one-time purchases).\n * iOS only supports promotional offers for auto-renewable subscriptions.\n */\n withOffer?: (DiscountOfferInputIOS | null);\n}\n\nexport type RequestPurchaseProps =\n | {\n /** Per-platform purchase request props */\n request: RequestPurchasePropsByPlatforms;\n /** Explicit purchase type hint (defaults to in-app) */\n type: 'in-app';\n }\n | {\n /** Per-platform subscription request props */\n request: RequestSubscriptionPropsByPlatforms;\n /** Explicit purchase type hint (defaults to in-app) */\n type: 'subs';\n };\n\n/**\n * Platform-specific purchase request parameters.\n *\n * Note: \"Platforms\" refers to the SDK/OS level (apple, google), not the store.\n * - apple: Always targets App Store\n * - google: Targets Play Store by default, Horizon when built with horizon flavor,\n * or Fire OS when built with amazon flavor\n * (determined at build time, not runtime)\n */\nexport interface RequestPurchasePropsByPlatforms {\n /** Apple-specific purchase parameters */\n apple?: (RequestPurchaseIosProps | null);\n /** Google-specific purchase parameters */\n google?: (RequestPurchaseAndroidProps | null);\n}\n\nexport type RequestPurchaseResult = Purchase | Purchase[] | null;\n\nexport interface RequestSubscriptionAndroidProps {\n /**\n * Developer billing option parameters for external payments and Billing Choice.\n * Billing Choice is available in OpenIAP Spec 2.1.0 / openiap-google 2.3.0\n * (requires Play Billing 9.1.0+).\n */\n developerBillingOption?: (DeveloperBillingOptionParamsAndroid | null);\n /**\n * Personalized offer flag.\n * When true, indicates the price was customized for this user.\n */\n isOfferPersonalized?: (boolean | null);\n /** Obfuscated account ID */\n obfuscatedAccountId?: (string | null);\n /** Obfuscated profile ID */\n obfuscatedProfileId?: (string | null);\n /**\n * Original external transaction ID for replacing a subscription that was\n * purchased through developer billing. Available in OpenIAP Spec 2.1.0 /\n * openiap-google 2.3.0 (requires Play Billing 9.1.0+).\n */\n originalExternalTransactionId?: (string | null);\n /** Purchase token for upgrades/downgrades */\n purchaseToken?: (string | null);\n /** List of subscription SKUs */\n skus: string[];\n /** Subscription offers */\n subscriptionOffers?: (AndroidSubscriptionOfferInput[] | null);\n /**\n * Product-level replacement parameters (8.1.0+)\n * Use this instead of replacementMode for item-level replacement\n * This singular form requires skus to contain exactly one target product.\n * Multi-item subscription changes need a per-target replacement mapping and\n * are rejected rather than applying one oldProductId to multiple products.\n */\n subscriptionProductReplacementParams?: (SubscriptionProductReplacementParamsAndroid | null);\n}\n\nexport interface RequestSubscriptionIosProps {\n /**\n * Advanced commerce data token (iOS 15+).\n * Used with StoreKit 2's Product.PurchaseOption.custom API for passing\n * campaign tokens, affiliate IDs, or other attribution data.\n * The data is formatted as JSON: {\"signatureInfo\": {\"token\": \"<value>\"}}\n */\n advancedCommerceData?: (string | null);\n andDangerouslyFinishTransactionAutomatically?: (boolean | null);\n appAccountToken?: (string | null);\n /**\n * Billing plan to use when purchasing an annual subscription that offers\n * monthly billing with a 12-month commitment (iOS 26.4+).\n */\n billingPlanType?: (SubscriptionBillingPlanTypeIOS | null);\n /**\n * Compact JWS string for overriding introductory offer eligibility\n * (iOS 15+, WWDC 2025). When nil, the system determines eligibility.\n * Generate the JWS on your server and pass it to StoreKit's\n * introductoryOfferEligibility(compactJWS:) purchase option.\n */\n compactJWS?: (string | null);\n /**\n * JWS promotional offer (iOS 15+, WWDC 2025).\n * New signature format using compact JWS string for promotional offers.\n * Back-deployed to iOS 15.\n */\n promotionalOfferJWS?: (PromotionalOfferJwsInputIOS | null);\n quantity?: (number | null);\n sku: string;\n /**\n * Win-back offer to apply (iOS 18+)\n * Used to re-engage churned subscribers with a discount or free trial.\n * The offer is available when the customer is eligible and can be discovered\n * via StoreKit Message (automatic) or subscription offer APIs.\n */\n winBackOffer?: (WinBackOfferInputIOS | null);\n /**\n * Promotional offer to apply for subscription purchases.\n * Requires server-signed offer with nonce, timestamp, keyId, and signature.\n */\n withOffer?: (DiscountOfferInputIOS | null);\n}\n\n/**\n * Platform-specific subscription request parameters.\n *\n * Note: \"Platforms\" refers to the SDK/OS level (apple, google), not the store.\n * - apple: Always targets App Store\n * - google: Targets Play Store by default, Horizon when built with horizon flavor,\n * or Fire OS when built with amazon flavor\n * (determined at build time, not runtime)\n */\nexport interface RequestSubscriptionPropsByPlatforms {\n /** Apple-specific subscription parameters */\n apple?: (RequestSubscriptionIosProps | null);\n /** Google-specific subscription parameters */\n google?: (RequestSubscriptionAndroidProps | null);\n}\n\nexport interface RequestVerifyPurchaseWithIapkitAmazonProps {\n /** Amazon Appstore receipt id returned by PurchaseResponse.getReceipt().getReceiptId(). */\n receiptId: string;\n /** Use Amazon RVS Cloud Sandbox for App Tester receipts. */\n sandbox?: (boolean | null);\n /** Amazon Appstore user id returned by PurchaseResponse.getUserData().getUserId(). */\n userId?: (string | null);\n}\n\nexport interface RequestVerifyPurchaseWithIapkitAppleProps {\n /** The JWS token returned with the purchase response. */\n jws: string;\n}\n\nexport interface RequestVerifyPurchaseWithIapkitGoogleProps {\n /** The token provided to the user's device when the product or subscription was purchased. */\n purchaseToken: string;\n}\n\n/**\n * Platform-specific verification parameters for IAPKit.\n *\n * - apple: Verifies via App Store (JWS token)\n * - google: Verifies via Play Store (purchase token)\n * - amazon: Verifies via Amazon Appstore RVS (userId + receiptId)\n */\nexport interface RequestVerifyPurchaseWithIapkitProps {\n /** Amazon Appstore verification parameters. */\n amazon?: (RequestVerifyPurchaseWithIapkitAmazonProps | null);\n /** API key used for the Authorization header (Bearer {apiKey}). */\n apiKey?: (string | null);\n /** Apple App Store verification parameters. */\n apple?: (RequestVerifyPurchaseWithIapkitAppleProps | null);\n /**\n * Available in OpenIAP Spec 2.3.1 / openiap-apple 2.4.0 / openiap-google 2.4.0.\n * Base URL for the IAPKit server. Defaults to https://kit.openiap.dev.\n * Set this to a reachable HTTP(S) origin when self-hosting or testing a local IAPKit server.\n * The apiKey must be issued by the same IAPKit/Convex deployment as this server.\n */\n baseUrl?: (string | null);\n /** Google Play Store verification parameters. */\n google?: (RequestVerifyPurchaseWithIapkitGoogleProps | null);\n /**\n * Available in OpenIAP Spec 2.4.0 / openiap-apple 2.4.1 / openiap-google 2.4.1.\n * Include the product's public IAPKit client payload in a valid Apple or\n * Google verification response. Defaults to false so existing response\n * shapes and bandwidth remain unchanged.\n */\n includeClientPayload?: (boolean | null);\n}\n\nexport interface RequestVerifyPurchaseWithIapkitResult {\n /**\n * Available in OpenIAP Spec 2.4.0 / openiap-apple 2.4.1 / openiap-google 2.4.1.\n * Public product payload when includeClientPayload was requested, the\n * Apple or Google receipt is valid, and a payload exists for that product.\n */\n clientPayload?: (IapkitProductClientPayload | null);\n /**\n * True when the purchase is valid and actionable.\n * Only entitled, pending-acknowledgment, or ready-to-consume return true.\n * Callers must still match productId and use the platform plus app-owned product\n * type to choose the fulfillment path.\n */\n isValid: boolean;\n /**\n * Available in OpenIAP Spec 2.4.0 / openiap-apple 2.4.1 / openiap-google 2.4.1.\n * Store-verified product identifier when the provider returns one.\n */\n productId?: (string | null);\n /** The current state of the purchase. */\n state: IapkitPurchaseState;\n store: IapStore;\n}\n\n/**\n * Sub-response codes for more granular purchase error information (Android)\n * Available in Google Play Billing Library 8.0.0+\n */\nexport type SubResponseCodeAndroid = 'no-applicable-sub-response-code' | 'payment-declined-due-to-insufficient-funds' | 'user-ineligible';\n\nexport interface Subscription {\n /**\n * Fires when a user selects developer billing in an External Payments or\n * Billing Choice flow (Android only). The payload can contain an external\n * transaction token, link URI, original transaction ID, and selected products.\n * Billing Choice payload fields are available in OpenIAP Spec 2.1.0 /\n * openiap-google 2.3.0 (requires Play Billing 9.1.0+).\n */\n developerProvidedBillingAndroid: DeveloperProvidedBillingDetailsAndroid;\n /**\n * Fires when the App Store surfaces a promoted product (iOS only).\n * A win-back offer attached to PurchaseIntent is preserved for the next\n * matching requestPurchase unless the caller supplies an explicit win-back or\n * promotional offer.\n */\n promotedProductIOS: string;\n /** Fires when a purchase fails or is cancelled */\n purchaseError: PurchaseError;\n /**\n * Fires when a purchase completes successfully or a pending purchase resolves\n * Options can opt iOS listeners into duplicate StoreKit transaction replays\n * for diagnostics; default listeners receive one event per transaction ID\n * during a single connection session.\n */\n purchaseUpdated: Purchase;\n /**\n * Fires when a subscription enters a billing-issue state that needs user action\n * (payment method failed, card expired, etc.). Cross-platform unification:\n *\n * - iOS 16.4+ / Mac Catalyst 16.4+ / visionOS 1.0+: delivered via StoreKit 2\n * `Message.Reason.billingIssue`.\n * - Android (Play flavor, Billing 8.1+): emitted when `isSuspended == true` is first detected\n * on a previously healthy subscription. Requires Google Play Billing Library 8.1.0 or newer.\n * - Android (Horizon flavor): NOT emitted. The Horizon Billing Compatibility SDK implements\n * the Play Billing 7.0 API surface which does not expose a suspended-subscription signal.\n * - Android (Amazon flavor): NOT emitted. Amazon Appstore IAP does not expose an\n * equivalent subscription billing-issue signal.\n *\n * Listeners should not assume the event will fire on every store. Direct users to the\n * platform subscription management UI (`deepLinkToSubscriptions`) to resolve the issue.\n */\n subscriptionBillingIssue: Purchase;\n /**\n * Fires when a user selects alternative billing in the User Choice Billing dialog (Android only)\n * Only triggered when the user selects alternative billing instead of Google Play billing\n */\n userChoiceBillingAndroid: UserChoiceBillingDetails;\n}\n\nexport type SubscriptionPurchaseUpdatedArgs = (PurchaseUpdatedListenerOptions | null) | undefined;\n\nexport type SubscriptionBillingPlanTypeIOS = 'unknown' | 'monthly' | 'up-front';\n\nexport interface SubscriptionCommitmentInfoIOS {\n displayPrice: string;\n period: SubscriptionPeriodValueIOS;\n price: number;\n}\n\n/**\n * Standardized subscription discount/promotional offer.\n * Provides a unified interface for subscription offers across iOS and Android.\n *\n * Both platforms support subscription offers with different implementations:\n * - iOS: Introductory offers, promotional offers with server-side signatures\n * - Android: Offer tokens with pricing phases\n *\n * @see https://openiap.dev/docs/types/subscription-offer\n */\nexport interface SubscriptionOffer {\n /**\n * [Android] Base plan identifier.\n * Identifies which base plan this offer belongs to.\n */\n basePlanIdAndroid?: (string | null);\n /** Currency code (ISO 4217, e.g., \"USD\") */\n currency?: (string | null);\n /** Formatted display price string (e.g., \"$9.99/month\") */\n displayPrice: string;\n /**\n * Unique identifier for the offer.\n * - iOS: Discount identifier from App Store Connect\n * - Android: offerId from the Google Play subscription offer\n */\n id: string;\n /**\n * [Android] Installment plan details for this subscription offer.\n * Only set for installment subscription plans; null for non-installment plans.\n * Available in Google Play Billing Library 7.0+\n */\n installmentPlanDetailsAndroid?: (InstallmentPlanDetailsAndroid | null);\n /**\n * [iOS] Key identifier for signature validation.\n * Used with server-side signature generation for promotional offers.\n */\n keyIdentifierIOS?: (string | null);\n /** [iOS] Localized price string. */\n localizedPriceIOS?: (string | null);\n /**\n * [iOS] Cryptographic nonce (UUID) for signature validation.\n * Must be generated server-side for each purchase attempt.\n */\n nonceIOS?: (string | null);\n /** [iOS] Number of billing periods for this discount. */\n numberOfPeriodsIOS?: (number | null);\n /** [Android] List of tags associated with this offer. */\n offerTagsAndroid?: (string[] | null);\n /**\n * [Android] Offer token required for purchase.\n * Must be passed to requestPurchase() when purchasing with this offer.\n */\n offerTokenAndroid?: (string | null);\n /** Payment mode during the offer period */\n paymentMode?: (PaymentMode | null);\n /** Subscription period for this offer */\n period?: (SubscriptionPeriod | null);\n /** Number of periods the offer applies */\n periodCount?: (number | null);\n /** Numeric price value */\n price: number;\n /**\n * [Android] Pricing phases for this subscription offer.\n * Contains detailed pricing information for each phase (trial, intro, regular).\n */\n pricingPhasesAndroid?: (PricingPhasesAndroid | null);\n /**\n * [iOS] Server-generated signature for promotional offer validation.\n * Required when applying promotional offers on iOS.\n */\n signatureIOS?: (string | null);\n /**\n * [iOS] Timestamp when the signature was generated.\n * Used for signature validation.\n */\n timestampIOS?: (number | null);\n /** Type of subscription offer (Introductory or Promotional) */\n type: DiscountOfferType;\n}\n\nexport type SubscriptionOfferTypeIOS = 'introductory' | 'promotional' | 'win-back';\n\n/** Subscription period value combining unit and count. */\nexport interface SubscriptionPeriod {\n /** The period unit (day, week, month, year) */\n unit: SubscriptionPeriodUnit;\n /** The number of units (e.g., 1 for monthly, 3 for quarterly) */\n value: number;\n}\n\nexport type SubscriptionPeriodIOS = 'day' | 'week' | 'month' | 'year' | 'empty';\n\n/** Subscription period unit for cross-platform use. */\nexport type SubscriptionPeriodUnit = 'day' | 'week' | 'month' | 'year' | 'unknown';\n\nexport interface SubscriptionPeriodValueIOS {\n unit: SubscriptionPeriodIOS;\n value: number;\n}\n\nexport interface SubscriptionPricingTermsIOS {\n billingDisplayPrice: string;\n billingPeriod: SubscriptionPeriodValueIOS;\n billingPlanType: SubscriptionBillingPlanTypeIOS;\n billingPrice: number;\n commitmentInfo: SubscriptionCommitmentInfoIOS;\n subscriptionOffers?: (SubscriptionOffer[] | null);\n}\n\n/**\n * Product-level subscription replacement parameters (Android)\n * Used with setSubscriptionProductReplacementParams in BillingFlowParams.ProductDetailsParams\n * Available in Google Play Billing Library 8.1.0+\n */\nexport interface SubscriptionProductReplacementParamsAndroid {\n /** The old product ID that needs to be replaced */\n oldProductId: string;\n /** The replacement mode for this product change */\n replacementMode: SubscriptionReplacementModeAndroid;\n}\n\n/**\n * Replacement mode for subscription changes (Android)\n * These modes determine how the subscription replacement affects billing.\n * Available in Google Play Billing Library 8.1.0+\n */\nexport type SubscriptionReplacementModeAndroid = 'unknown-replacement-mode' | 'with-time-proration' | 'charge-prorated-price' | 'charge-full-price' | 'without-proration' | 'deferred' | 'keep-existing';\n\nexport interface SubscriptionStatusIOS {\n renewalInfo?: (RenewalInfoIOS | null);\n state: string;\n}\n\nexport interface TransactionCommitmentInfoIOS {\n billingPeriodNumber: number;\n commitmentExpiresDate: number;\n commitmentPrice: number;\n totalBillingPeriods: number;\n}\n\n/**\n * User Choice Billing event details (Android)\n * Fired when a user selects alternative billing in the User Choice Billing dialog\n */\nexport interface UserChoiceBillingDetails {\n /** Token that must be reported to Google Play within 24 hours */\n externalTransactionToken: string;\n /**\n * External transaction ID of the originating subscription when the user is\n * upgrading or downgrading a developer-billed subscription. Available in\n * OpenIAP Spec 2.3.0 / openiap-google 2.3.1 (requires Play Billing 9.1+).\n */\n originalExternalTransactionId?: (string | null);\n /**\n * Structured product details selected in the user-choice flow, including the\n * product type and offer token. Legacy payloads may omit this field; use\n * products as the product-ID fallback. Available in OpenIAP Spec 2.3.0 /\n * openiap-google 2.3.1 (requires Play Billing 9.1+).\n */\n productDetailsAndroid?: (DeveloperProvidedBillingProductAndroid[] | null);\n /** List of product IDs selected by the user */\n products: string[];\n}\n\n/**\n * Valid time window for when an offer is available (Android)\n * Available in Google Play Billing Library 8.0+\n */\nexport interface ValidTimeWindowAndroid {\n /** End time in milliseconds since epoch */\n endTimeMillis: string;\n /** Start time in milliseconds since epoch */\n startTimeMillis: string;\n}\n\n/**\n * Apple App Store verification parameters.\n * Used for server-side receipt validation via App Store Server API.\n */\nexport interface VerifyPurchaseAppleOptions {\n /** Product SKU to validate */\n sku: string;\n}\n\n/**\n * Google Play Store verification parameters.\n * Used for server-side receipt validation via Google Play Developer API.\n *\n * ⚠️ SECURITY: Contains sensitive tokens (accessToken, purchaseToken). Do not log or persist this data.\n */\nexport interface VerifyPurchaseGoogleOptions {\n /**\n * Google OAuth2 access token for API authentication.\n * ⚠️ Sensitive: Do not log this value.\n */\n accessToken: string;\n /** Whether this is a subscription purchase (affects API endpoint used) */\n isSub?: (boolean | null);\n /** Android package name (e.g., com.example.app) */\n packageName: string;\n /**\n * Purchase token from the purchase response.\n * ⚠️ Sensitive: Do not log this value.\n */\n purchaseToken: string;\n /** Product SKU to validate */\n sku: string;\n}\n\n/**\n * Meta Horizon (Quest) verification parameters.\n * Used for server-side entitlement verification via Meta's S2S API.\n * POST https://graph.oculus.com/$APP_ID/verify_entitlement\n *\n * ⚠️ SECURITY: Contains sensitive token (accessToken). Do not log or persist this data.\n */\nexport interface VerifyPurchaseHorizonOptions {\n /**\n * Access token for Meta API authentication (OC|$APP_ID|$APP_SECRET or User Access Token).\n * ⚠️ Sensitive: Do not log this value.\n */\n accessToken: string;\n /** The SKU for the add-on item, defined in Meta Developer Dashboard */\n sku: string;\n /** The user ID of the user whose purchase you want to verify */\n userId: string;\n}\n\n/**\n * Platform-specific purchase verification parameters.\n *\n * - apple: Verifies via App Store Server API\n * - google: Verifies via Google Play Developer API\n * - horizon: Verifies via Meta's S2S API (verify_entitlement endpoint)\n */\nexport interface VerifyPurchaseProps {\n /** Apple App Store verification parameters. */\n apple?: (VerifyPurchaseAppleOptions | null);\n /** Google Play Store verification parameters. */\n google?: (VerifyPurchaseGoogleOptions | null);\n /** Meta Horizon (Quest) verification parameters. */\n horizon?: (VerifyPurchaseHorizonOptions | null);\n}\n\nexport type VerifyPurchaseResult = VerifyPurchaseResultAndroid | VerifyPurchaseResultHorizon | VerifyPurchaseResultIOS;\n\nexport interface VerifyPurchaseResultAndroid {\n autoRenewing: boolean;\n betaProduct: boolean;\n cancelDate?: (number | null);\n cancelReason?: (string | null);\n deferredDate?: (number | null);\n deferredSku?: (string | null);\n freeTrialEndDate: number;\n gracePeriodEndDate: number;\n parentProductId: string;\n productId: string;\n productType: string;\n purchaseDate: number;\n quantity: number;\n receiptId: string;\n renewalDate: number;\n term: string;\n termSku: string;\n testTransaction: boolean;\n}\n\n/**\n * Result from Meta Horizon verify_entitlement API.\n * Returns verification status and grant time for the entitlement.\n */\nexport interface VerifyPurchaseResultHorizon {\n /** Unix timestamp (seconds) when the entitlement was granted. */\n grantTime?: (number | null);\n /** Whether the entitlement verification succeeded. */\n success: boolean;\n}\n\nexport interface VerifyPurchaseResultIOS {\n /** Whether the receipt is valid */\n isValid: boolean;\n /** JWS representation */\n jwsRepresentation: string;\n /** Latest transaction if available */\n latestTransaction?: (Purchase | null);\n /** Receipt data string */\n receiptData: string;\n}\n\nexport interface VerifyPurchaseWithProviderError {\n code?: (string | null);\n message: string;\n}\n\nexport interface VerifyPurchaseWithProviderProps {\n iapkit?: (RequestVerifyPurchaseWithIapkitProps | null);\n provider: PurchaseVerificationProvider;\n}\n\nexport interface VerifyPurchaseWithProviderResult {\n /** Error details if verification failed */\n errors?: (VerifyPurchaseWithProviderError[] | null);\n /** IAPKit verification result */\n iapkit?: (RequestVerifyPurchaseWithIapkitResult | null);\n provider: PurchaseVerificationProvider;\n}\n\nexport type VoidResult = void;\n\n/**\n * Win-back offer input for iOS 18+ (StoreKit 2)\n * Win-back offers are used to re-engage churned subscribers.\n * The offer is automatically presented via StoreKit Message when eligible,\n * or can be applied programmatically during purchase.\n */\nexport interface WinBackOfferInputIOS {\n /** The win-back offer ID from App Store Connect */\n offerId: string;\n}\n// -- Mutation helper types (auto-generated)\nexport type MutationArgsMap = {\n acknowledgePurchaseAndroid: MutationAcknowledgePurchaseAndroidArgs;\n beginRefundRequestIOS: MutationBeginRefundRequestIosArgs;\n clearTransactionIOS: never;\n consumePurchaseAndroid: MutationConsumePurchaseAndroidArgs;\n createBillingProgramReportingDetailsAndroid: MutationCreateBillingProgramReportingDetailsAndroidArgs;\n deepLinkToSubscriptions: MutationDeepLinkToSubscriptionsArgs;\n endConnection: never;\n finishTransaction: MutationFinishTransactionArgs;\n initConnection: MutationInitConnectionArgs;\n isBillingProgramAvailableAndroid: MutationIsBillingProgramAvailableAndroidArgs;\n launchExternalLinkAndroid: MutationLaunchExternalLinkAndroidArgs;\n openRedeemOfferCodeAndroid: never;\n presentCodeRedemptionSheetIOS: never;\n presentExternalPurchaseLinkIOS: MutationPresentExternalPurchaseLinkIosArgs;\n presentExternalPurchaseNoticeSheetIOS: never;\n requestPurchase: MutationRequestPurchaseArgs;\n restorePurchases: never;\n showBillingProgramInformationDialogAndroid: MutationShowBillingProgramInformationDialogAndroidArgs;\n showExternalPurchaseCustomLinkNoticeIOS: MutationShowExternalPurchaseCustomLinkNoticeIosArgs;\n showInAppMessagesAndroid: MutationShowInAppMessagesAndroidArgs;\n showManageSubscriptionsIOS: never;\n syncIOS: never;\n verifyPurchase: MutationVerifyPurchaseArgs;\n verifyPurchaseWithProvider: MutationVerifyPurchaseWithProviderArgs;\n};\n\nexport type MutationField<K extends keyof Mutation> =\n MutationArgsMap[K] extends never\n ? () => NonNullable<Mutation[K]>\n : undefined extends MutationArgsMap[K]\n ? (args?: MutationArgsMap[K]) => NonNullable<Mutation[K]>\n : (args: MutationArgsMap[K]) => NonNullable<Mutation[K]>;\n\nexport type MutationFieldMap = {\n [K in keyof Mutation]?: MutationField<K>;\n};\n// -- End mutation helper types\n\n// -- Query helper types (auto-generated)\nexport type QueryArgsMap = {\n canPresentExternalPurchaseNoticeIOS: never;\n currentEntitlementIOS: QueryCurrentEntitlementIosArgs;\n fetchProducts: QueryFetchProductsArgs;\n getActiveSubscriptions: QueryGetActiveSubscriptionsArgs;\n getAllTransactionsIOS: never;\n getAppTransactionIOS: never;\n getAvailablePurchases: QueryGetAvailablePurchasesArgs;\n getBillingChoiceInfoAndroid: QueryGetBillingChoiceInfoAndroidArgs;\n getExternalPurchaseCustomLinkTokenIOS: QueryGetExternalPurchaseCustomLinkTokenIosArgs;\n getPendingTransactionsIOS: never;\n getPromotedProductIOS: never;\n getReceiptDataIOS: never;\n getStorefront: never;\n getTransactionJwsIOS: QueryGetTransactionJwsIosArgs;\n hasActiveSubscriptions: QueryHasActiveSubscriptionsArgs;\n isEligibleForExternalPurchaseCustomLinkIOS: never;\n isEligibleForIntroOfferIOS: QueryIsEligibleForIntroOfferIosArgs;\n isTransactionVerifiedIOS: QueryIsTransactionVerifiedIosArgs;\n latestTransactionIOS: QueryLatestTransactionIosArgs;\n subscriptionStatusIOS: QuerySubscriptionStatusIosArgs;\n};\n\nexport type QueryField<K extends keyof Query> =\n QueryArgsMap[K] extends never\n ? () => NonNullable<Query[K]>\n : undefined extends QueryArgsMap[K]\n ? (args?: QueryArgsMap[K]) => NonNullable<Query[K]>\n : (args: QueryArgsMap[K]) => NonNullable<Query[K]>;\n\nexport type QueryFieldMap = {\n [K in keyof Query]?: QueryField<K>;\n};\n// -- End query helper types\n\n// -- Subscription helper types (auto-generated)\nexport type SubscriptionArgsMap = {\n developerProvidedBillingAndroid: never;\n promotedProductIOS: never;\n purchaseError: never;\n purchaseUpdated: SubscriptionPurchaseUpdatedArgs;\n subscriptionBillingIssue: never;\n userChoiceBillingAndroid: never;\n};\n\nexport type SubscriptionField<K extends keyof Subscription> =\n SubscriptionArgsMap[K] extends never\n ? () => NonNullable<Subscription[K]>\n : undefined extends SubscriptionArgsMap[K]\n ? (args?: SubscriptionArgsMap[K]) => NonNullable<Subscription[K]>\n : (args: SubscriptionArgsMap[K]) => NonNullable<Subscription[K]>;\n\nexport type SubscriptionFieldMap = {\n [K in keyof Subscription]?: SubscriptionField<K>;\n};\n// -- End subscription helper types\n"]}
@@ -1,5 +1,5 @@
1
1
  {
2
- "spec": "3.0.1",
3
- "google": "3.1.0",
4
- "apple": "3.0.1"
2
+ "spec": "3.1.1",
3
+ "google": "3.2.1",
4
+ "apple": "3.1.1"
5
5
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo-iap",
3
- "version": "5.1.0",
3
+ "version": "5.2.1",
4
4
  "description": "In App Purchase module in Expo",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",
@@ -94,7 +94,11 @@ const ensureLocalOpenIapFlavorStrategy = (contents, flavor, language = 'groovy')
94
94
  .replace(/\n{3,}/g, '\n\n')
95
95
  .trimEnd();
96
96
  const strategyBlock = language === 'kotlin'
97
- ? `subprojects {
97
+ ? `project(":openiap-google") {
98
+ layout.buildDirectory.set(rootProject.layout.buildDirectory.dir("openiap-google"))
99
+ }
100
+
101
+ subprojects {
98
102
  plugins.withId("com.android.library") {
99
103
  extensions.configure<com.android.build.gradle.LibraryExtension>("android") {
100
104
  defaultConfig {
@@ -103,7 +107,11 @@ const ensureLocalOpenIapFlavorStrategy = (contents, flavor, language = 'groovy')
103
107
  }
104
108
  }
105
109
  }`
106
- : `subprojects { subproject ->
110
+ : `project(":openiap-google") {
111
+ layout.buildDirectory.set(rootProject.layout.buildDirectory.dir("openiap-google"))
112
+ }
113
+
114
+ subprojects { subproject ->
107
115
  subproject.plugins.withId("com.android.library") {
108
116
  subproject.android {
109
117
  defaultConfig {
@@ -127,7 +127,11 @@ export const ensureLocalOpenIapFlavorStrategy = (
127
127
 
128
128
  const strategyBlock =
129
129
  language === 'kotlin'
130
- ? `subprojects {
130
+ ? `project(":openiap-google") {
131
+ layout.buildDirectory.set(rootProject.layout.buildDirectory.dir("openiap-google"))
132
+ }
133
+
134
+ subprojects {
131
135
  plugins.withId("com.android.library") {
132
136
  extensions.configure<com.android.build.gradle.LibraryExtension>("android") {
133
137
  defaultConfig {
@@ -136,7 +140,11 @@ export const ensureLocalOpenIapFlavorStrategy = (
136
140
  }
137
141
  }
138
142
  }`
139
- : `subprojects { subproject ->
143
+ : `project(":openiap-google") {
144
+ layout.buildDirectory.set(rootProject.layout.buildDirectory.dir("openiap-google"))
145
+ }
146
+
147
+ subprojects { subproject ->
140
148
  subproject.plugins.withId("com.android.library") {
141
149
  subproject.android {
142
150
  defaultConfig {
@@ -282,8 +282,10 @@ export const getTransactionJwsIOS: QueryField<'getTransactionJwsIOS'> = async (
282
282
  *
283
283
  * Note: This only works on real devices, not simulators.
284
284
  *
285
- * @returns The verified redeemed purchase on iOS 27+, or null after the
286
- * legacy sheet is presented on earlier iOS versions.
285
+ * @returns The verified redeemed purchase when built with Xcode 27+ and
286
+ * running on Apple 27+. Earlier iOS/visionOS system sheets return null;
287
+ * Catalyst 16–26 surfaces StoreKitError.unknown, and Catalyst 15 is a no-op
288
+ * that returns null.
287
289
  * @throws Error if called on non-iOS platform or tvOS
288
290
  *
289
291
  * @platform iOS
@@ -484,9 +486,8 @@ export const getExternalPurchaseCustomLinkTokenIOS: QueryField<
484
486
  "getExternalPurchaseCustomLinkTokenIOS requires a tokenType ('acquisition' or 'services')",
485
487
  );
486
488
  }
487
- const result = await ExpoIapModule.getExternalPurchaseCustomLinkTokenIOS(
488
- tokenType,
489
- );
489
+ const result =
490
+ await ExpoIapModule.getExternalPurchaseCustomLinkTokenIOS(tokenType);
490
491
  return result as ExternalPurchaseCustomLinkTokenResultIOS;
491
492
  };
492
493
 
@@ -511,9 +512,8 @@ export const showExternalPurchaseCustomLinkNoticeIOS: MutationField<
511
512
  "showExternalPurchaseCustomLinkNoticeIOS requires a noticeType ('browser')",
512
513
  );
513
514
  }
514
- const result = await ExpoIapModule.showExternalPurchaseCustomLinkNoticeIOS(
515
- noticeType,
516
- );
515
+ const result =
516
+ await ExpoIapModule.showExternalPurchaseCustomLinkNoticeIOS(noticeType);
517
517
  return result as ExternalPurchaseCustomLinkNoticeResultIOS;
518
518
  };
519
519
 
package/src/types.ts CHANGED
@@ -46,6 +46,13 @@ export interface AdvancedCommerceInfoIOS {
46
46
  estimatedTax?: (string | null);
47
47
  /** The items purchased as part of this transaction */
48
48
  items: AdvancedCommerceItemIOS[];
49
+ /**
50
+ * Subscription period for this transaction.
51
+ * Available in OpenIAP Spec 3.1.0 / openiap-apple 3.1.0
52
+ * (requires iOS 18.4+, macOS 15.4+, tvOS 18.4+, watchOS 11.4+,
53
+ * or visionOS 2.4+).
54
+ */
55
+ period?: (SubscriptionPeriodValueIOS | null);
49
56
  /** Request reference identifier for tracking */
50
57
  requestReferenceId?: (string | null);
51
58
  /** Tax code for the transaction */
@@ -809,11 +816,15 @@ export interface Mutation {
809
816
  openRedeemOfferCodeAndroid: Promise<boolean>;
810
817
  /**
811
818
  * Show the App Store offer code redemption sheet.
812
- * On iOS 27+, Mac Catalyst 27+, and visionOS 27+, returns the verified
813
- * transaction produced by the redemption. Earlier iOS and Mac Catalyst
814
- * versions present the legacy sheet and return null; reconcile purchases
815
- * through the normal transaction listener or an explicit available-purchases
816
- * refresh.
819
+ * When built with Xcode 27+ and running on iOS 27+, Mac Catalyst 27+, or
820
+ * visionOS 27+, returns the verified transaction produced by the redemption.
821
+ * StoreKit 2's scene-based sheet returns null after presentation on iOS 16–26,
822
+ * visionOS 1–26, and those platforms on Apple 27 when built with an older SDK.
823
+ * iOS 15 uses the StoreKit 1 sheet and also returns null. On Mac Catalyst, the
824
+ * scene-based API throws StoreKitError.unknown, while the Catalyst 15 StoreKit 1
825
+ * call has no effect and returns null. Reconcile null results from a presented
826
+ * sheet through the normal transaction listener or an explicit
827
+ * available-purchases refresh.
817
828
  * See: https://openiap.dev/docs/apis/ios/present-code-redemption-sheet-ios
818
829
  */
819
830
  presentCodeRedemptionSheetIOS?: Promise<(PurchaseIOS | null)>;
@@ -1427,7 +1438,12 @@ export interface Query {
1427
1438
  */
1428
1439
  getPendingTransactionsIOS: Promise<PurchaseIOS[]>;
1429
1440
  /**
1430
- * Read the App Store-promoted product, if any (iOS 11+).
1441
+ * Read the App Store-promoted product, if any (iOS 15+).
1442
+ * OpenIAP consumes PurchaseIntent.intents on iOS 16.4+ and uses the
1443
+ * StoreKit 1 observer only on iOS 15–16.3. When PurchaseIntent carries an
1444
+ * externally redeemed win-back offer, OpenIAP preserves it for the next
1445
+ * matching requestPurchase unless the caller supplies an explicit win-back or
1446
+ * promotional offer.
1431
1447
  * See: https://openiap.dev/docs/apis/ios/get-promoted-product-ios
1432
1448
  */
1433
1449
  getPromotedProductIOS?: Promise<(ProductIOS | null)>;
@@ -1864,7 +1880,12 @@ export interface Subscription {
1864
1880
  * openiap-google 2.3.0 (requires Play Billing 9.1.0+).
1865
1881
  */
1866
1882
  developerProvidedBillingAndroid: DeveloperProvidedBillingDetailsAndroid;
1867
- /** Fires when the App Store surfaces a promoted product (iOS only) */
1883
+ /**
1884
+ * Fires when the App Store surfaces a promoted product (iOS only).
1885
+ * A win-back offer attached to PurchaseIntent is preserved for the next
1886
+ * matching requestPurchase unless the caller supplies an explicit win-back or
1887
+ * promotional offer.
1888
+ */
1868
1889
  promotedProductIOS: string;
1869
1890
  /** Fires when a purchase fails or is cancelled */
1870
1891
  purchaseError: PurchaseError;