import { type EventSubscription } from 'expo-modules-core'; import type { BillingProgramAndroid, BillingProgramReportingDetailsAndroid, DeveloperBillingTypeAndroid, Mutation, MutationField, ProductQueryType, PurchaseInput, PurchaseOptions, PurchaseUpdatedListenerOptions, Query, QueryField, SubscriptionStatusIOS } from './types'; /** Members read from the raw module; every store module provides them. */ type NativeEventModule = { ERROR_CODES?: Record; HAS_EXPLICIT_STORE_PROVIDER?: boolean; addListener(eventName: string, listener: (payload: T) => void): EventSubscription | undefined; removeListener?(eventName: string, listener: (payload: T) => void): void; setPurchaseUpdatedListenerOptions?(options?: PurchaseUpdatedListenerOptions | null): Promise; }; type QueryFields = { [P in K]: QueryField

; }; type MutationFields = { [P in K]: MutationField

; }; /** * Native surface behind the default export. Results the wrappers decode stay * `unknown`; the rest match the generated operation signatures. */ export type ExpoIapNativeModule = NativeEventModule & QueryFields<'canPresentExternalPurchaseNoticeIOS' | 'currentEntitlementIOS' | 'getActiveSubscriptions' | 'getAppTransactionIOS' | 'verifyAppOwnership' | 'getBillingChoiceInfoAndroid' | 'getExternalPurchaseCustomLinkTokenIOS' | 'getPromotedProductIOS' | 'getReceiptDataIOS' | 'getTransactionJwsIOS' | 'hasActiveSubscriptions' | 'isEligibleForExternalPurchaseCustomLinkIOS' | 'isEligibleForIntroOfferIOS' | 'isTransactionVerifiedIOS' | 'latestTransactionIOS'> & MutationFields<'beginRefundRequestIOS' | 'clearTransactionIOS' | 'endConnection' | 'initConnection' | 'isBillingProgramAvailableAndroid' | 'launchExternalLinkAndroid' | 'openRedeemOfferCode' | 'presentExternalPurchaseLinkIOS' | 'presentExternalPurchaseNoticeSheetIOS' | 'showBillingProgramInformationDialogAndroid' | 'showExternalPurchaseCustomLinkNoticeIOS' | 'showInAppMessagesAndroid' | 'syncIOS' | 'verifyPurchase' | 'verifyPurchaseWithProvider'> & { USING_ONSIDE_SDK: boolean; USING_VEGA_SDK: boolean; fetchProducts(request: { skus: string[]; type: ProductQueryType; }): Promise; fetchProducts(type: ProductQueryType, skus: string[]): Promise; getAvailableItems(alsoPublishToEventListenerIOS: boolean, onlyIncludeActiveItemsIOS: boolean): Promise; getAvailableItems(options: PurchaseOptions): Promise; getAllTransactionsIOS(): Promise; getPendingTransactionsIOS(): Promise; showManageSubscriptionsIOS(): Promise; deepLinkToSubscriptionsIOS(): Promise; requestPurchase(request: object): Promise; finishTransaction(purchase: PurchaseInput, isConsumable: boolean | null): Promise; /** Internal: the once-per-install flag behind the first-purchase notice. */ claimFirstPurchaseNotice(): Promise; acknowledgePurchaseAndroid(purchaseToken: string): Promise; consumePurchaseAndroid(purchaseToken: string): Promise; createBillingProgramReportingDetailsAndroid(program: BillingProgramAndroid, developerBillingType: DeveloperBillingTypeAndroid | null): Promise; subscriptionStatusIOS(sku: string): Promise; requestReceiptRefreshIOS(): Promise; deepLinkToSubscriptionsAndroid?(options: { skuAndroid?: string; packageNameAndroid?: string; }): Promise | void; getStorefront?(): Promise | string; restorePurchases?(): Promise; }; export declare const NATIVE_ERROR_CODES: Record; /** * Returns the raw native module, not the Proxy. Use it for addListener: a JSI * HostObject needs the real module as `this`, and a Proxy throws "native state * unsupported on Proxy" on New Architecture / Hermes. */ export declare function getNativeModule(): NativeEventModule; declare const _default: ExpoIapNativeModule; export default _default; //# sourceMappingURL=ExpoIapModule.d.ts.map