export type DepositThemeMode = 'light' | 'dark'; export type ResolvedDepositThemeMode = 'light' | 'dark'; export declare const resolveDepositThemeMode: (themeMode: DepositThemeMode | undefined, systemTheme: ResolvedDepositThemeMode) => ResolvedDepositThemeMode; export type DepositDisplay = 'inline' | 'button' | 'new-tab' | 'modal'; export type DepositNetwork = 'test' | 'main'; export type DepositVariant = 'default' | 'minimal'; export type DepositForcedStep = 'connect-wallet' | 'wallet-display' | 'moonpay-onramp' | 'connect-exchange'; export declare enum DepositConnectWallet { METAMASK = "METAMASK", OKX = "OKX", PHANTOM = "PHANTOM", RABBY = "RABBY", SOLFLARE = "SOLFLARE", TRUST_WALLET = "TRUST_WALLET", WALLET_CONNECT = "WALLET_CONNECT", E2E_TEST_WALLET = "E2E_TEST_WALLET" } declare const allSupportedBlockchains: { readonly SOL: true; readonly ETH: true; readonly BASE: true; readonly POLYGON: true; readonly ARBITRUM: true; readonly BSC: true; readonly ABSTRACT: true; readonly HYPERLIQUID: true; readonly HYPERCORE: true; readonly DOGE: true; readonly PLASMA: false; readonly MEGAETH: true; readonly SEISMIC: false; }; export type SupportedBlockchain = keyof typeof allSupportedBlockchains; export type ConnectWalletSelection = { wallet: `${DepositConnectWallet}`; blockchain: `${SupportedBlockchain}`; address: string; }; export interface MoonpayCommerceDepositConfig { buttonText?: string; currentlyConnectedWallet?: ConnectWalletSelection; debug?: boolean; depositCustomerToken: string; display?: DepositDisplay; forcedStep?: DepositForcedStep; isLoading?: boolean; loadingText?: React.ReactNode; network?: DepositNetwork; onError?: (error: { message: string; }) => void; onReady?: () => void; onSuccess?: () => void; openWalletConnectInNewTab?: boolean; themeMode?: DepositThemeMode; variant?: DepositVariant; /** * @internal * Monotonically increasing value bumped by the React wrapper's custom * `trigger` on every click. It lets a repeat `moonpayCommerceDeposit` call * on an already-mounted instance re-open the modal (see `DepositFlowEmbed`). * Not part of the public integration API. */ openSignal?: number; } export type WindowMoonpayCommerceDepositFn = (element: HTMLElement | null, config: MoonpayCommerceDepositConfig) => void | Promise; declare global { interface Window { moonpayCommerceDeposit?: WindowMoonpayCommerceDepositFn; } } export interface MoonpayCommerceDepositReactProps { config: MoonpayCommerceDepositConfig; /** * The element that opens the deposit modal when clicked. Pass any React * element — ideally a `