import * as React from 'react'; declare module "react-native-snapmint3" { export interface PaymentData { finalData: { merchant_key: string; merchant_token: string; merchant_id: number; merchant_confirmation_url: string; merchant_failure_url: string; mobile: string; store_id: number; order_id: string; order_value: number; udf1?: any; udf2?: any; full_name: string; email: string; billing_address_line1?: string; billing_zip?: string; shipping_address_line1?: string; shipping_zip?: string; deviceType?: string; products?: Array<{ sku: string; name: string; quantity: number; unit_price: number; udf1?: any; udf2?: any; }>; }; base_url: string; suc_url: string; fail_url: string; } export interface PaymentResult { status: string; statusCode: number; message: string; responseMsg: string; paymentId?: string; } export interface PaymentError { status: string; statusCode: number; message: string; responseMsg: string; } export interface RNSnapmintButtonProps { amount: string; merchantPath?: string; // Merchant config path (e.g., "1616/snap_ketch.json") - NEW jsonUrl?: string; // Full URL for merchant config (deprecated, use merchantPath) - LEGACY fontFamily?: { fontFamily: string; fontMultiplier: number; }; buttonWidth?: number; disablePopup?: boolean; } /** * @deprecated This component is deprecated and will be removed in a future release. * Please use SnapmintEMIWidget instead, which has the same props and API. */ export const RNSnapmintButton: React.FC; export interface SnapmintEMIWidgetProps { amount: string; merchantPath?: string; // Merchant config path (e.g., "1616/snap_ketch.json") jsonUrl?: string; // Full URL for merchant config (deprecated, use merchantPath) - LEGACY fontFamily?: { fontFamily: string; fontMultiplier: number; }; buttonWidth?: number; disablePopup?: boolean; } export const SnapmintEMIWidget: React.FC; export namespace Components { interface CardProps { title?: string; cardStyle?: object; titleStyle?: object; contentStyle?: object; children?: React.ReactNode; } export const Card: React.FC; interface MultiplyButtonProps { buttonStyle?: object; textStyle?: object; resultStyle?: object; containerStyle?: object; title?: string; defaultValueA?: string; defaultValueB?: string; onResult?: (result: number | string) => void; } export const MultiplyButton: React.FC; } export interface PaymentOptions { onSuccess?: (result: PaymentResult) => void; onError?: (error: PaymentError) => void; header?: SnapmintHeaderOptions; } export interface SnapmintHeaderOptions { enableHeader?: boolean; showTitle?: boolean; title?: string; backButtonColor?: string; // hex string titleColor?: string; // hex string headerColor?: string; // hex string } export default class RNSnapmint3 { static openSnapmintMerchant(checkoutUrl: string, options?: PaymentOptions): Promise; } }