react-native-nami-sdk
Version:
React Native SDK for Nami - No-code paywall and onboarding flows with A/B testing.
87 lines (74 loc) • 1.96 kB
text/typescript
import type { TurboModule } from 'react-native';
import { TurboModuleRegistry } from 'react-native';
export interface Spec extends TurboModule {
// Unified purchase success handler
buySkuComplete(purchase: {
product: {
id: string;
skuId: string;
name?: string;
type: string;
};
transactionID?: string;
originalTransactionID?: string;
orderId?: string;
purchaseToken?: string;
receiptId?: string;
localizedPrice?: string;
userId?: string;
marketplace?: string;
price?: string;
currencyCode?: string;
storeType?: string;
}): void;
// Backward compatibility methods
buySkuCompleteApple(purchase: {
product: {
id: string;
skuId: string;
name?: string;
type: string;
};
transactionID: string;
originalTransactionID: string;
price: string;
currencyCode: string;
}): void;
buySkuCompleteAmazon(purchase: {
product: {
id: string;
skuId: string;
name?: string;
type: string;
};
receiptId: string;
localizedPrice: string;
userId: string;
marketplace: string;
}): void;
buySkuCompleteGooglePlay(purchase: {
product: {
id: string;
skuId: string;
name?: string;
type: string;
};
orderId: string;
purchaseToken: string;
}): void;
registerBuySkuHandler(): void;
registerCloseHandler(): void;
registerSignInHandler(): void;
registerRestoreHandler(): void;
registerDeeplinkActionHandler(): void;
dismiss(): Promise<boolean>;
show(): void;
hide(): void;
isHidden(): Promise<boolean>;
isPaywallOpen(): Promise<boolean>;
buySkuCancel(): void;
setProductDetails(productDetails: string, allowOffers: boolean): void;
setAppSuppliedVideoDetails(url: string, name?: string): void;
allowUserInteraction(allowed: boolean): void;
}
export default TurboModuleRegistry.getEnforcing<Spec>('RNNamiPaywallManager');