import { QueryClient } from '@tanstack/react-query'; import { type ReactNode } from 'react'; import type { BackdropBlurRenderer } from '../flow/FlowSheet'; import type { StripeOnrampConfig } from '../fiat/providers/useStripeOnrampClient'; import { type HapticFeedback } from '../haptics/HapticsContext'; import { type FunkitConfig } from '../identity/IdentityContext'; import type { Locale } from '../locales/i18n'; import { type FunkitThemeProviderProps } from '../theme/FunkitThemeProvider'; import type { ClipboardReader, ClipboardWriter } from '../transfer/clipboard'; export interface FunkitProviderProps { children: ReactNode; /** * Identity config — `apiKey` (+ optional `externalUserId`). Mirrors the * identity-relevant subset of the web SDK's `funkitConfig`. Required for the * SDK to generate deposit addresses; when omitted, the deposit flow falls * back to any host-supplied `depositAddress` on the flow config. */ config?: FunkitConfig; /** * The connected wallet address (default transfer recipient). On web this * comes from wagmi; RN has no wallet provider, so the host passes it here. * * Together with `config` this is who is paying, and it holds still while a * flow is open: a change made mid-flow is logged and applies on close. */ walletAddress?: string; /** * React Query client. Web requires the host to supply one; for single-provider * RN ergonomics we default to an internally-created client when omitted (pass * your own to share a cache with the rest of the app). */ queryClient?: QueryClient; /** * Light/dark Restyle theme set. Defaults to the built-in Fun Mobile themes. * Forwarded to {@link FunkitThemeProvider}. */ themes?: FunkitThemeProviderProps['themes']; /** * Optional forced color scheme. When set, the scheme is controlled (system * Appearance ignored, `toggleColorScheme()` disabled); when omitted it * follows the system Appearance and is toggleable. Forwarded to * {@link FunkitThemeProvider}. */ colorScheme?: FunkitThemeProviderProps['colorScheme']; /** * Run Statsig in development mode (dev environment tier + verbose logging). * Mirrors `@funkit/connect`'s `debug`. */ debug?: boolean; /** * UI language for the SDK's own copy (defaults to English). Mirrors * `@funkit/connect`'s `locale`. */ locale?: Locale; /** * Clipboard write used by the deposit flow's "Copy address" buttons. Defaults * to the bare-RN `@react-native-clipboard/clipboard` peer (lazily loaded). * Inject your own to use a different module — e.g. pass `setStringAsync` from * `expo-clipboard` when running in **Expo Go**, where the native module isn't * linked. Return the write's success to drive the "Copied!" confirmation; a * `void` return is treated as success. */ copyToClipboard?: ClipboardWriter; /** * Clipboard read behind the withdrawal's "Paste" button. Defaults to the same * bare-RN peer as {@link FunkitProviderProps.copyToClipboard} — inject your own * (e.g. `getStringAsync` from `expo-clipboard`) where that module isn't linked. */ pasteFromClipboard?: ClipboardReader; /** * Replaces the material under the flow sheets. The SDK ships its own — a * blur of the host app with iOS 26 Liquid Glass through it — so leave this * unset unless the app wants a different native material. */ renderBackdropBlur?: BackdropBlurRenderer; /** * Set with `renderBackdropBlur` when that view is iOS 26 Liquid Glass. The * sheet then paints no fill over it, so the glass refracts the host app * instead of a flat panel. Meaningless alone. */ liquidGlass?: boolean; /** * Turns the Stripe fiat rail on. This package bundles Stripe's native SDK and * drives it itself; all a host supplies is its own account's publishable key, * the display name for Stripe's sheets, and — for Apple Pay — the Apple * Merchant ID from its entitlements. Omit it and no Stripe code runs. */ stripeOnramp?: StripeOnrampConfig; /** * Tactile tap for the withdrawal keypad. Omitted, the SDK taps through the * optional `react-native-haptic-feedback` peer when it is installed, and * stays silent when it isn't. Pass your own to use another module — * `expo-haptics` in Expo Go, which links only Expo's own — or a no-op for * silence. */ hapticFeedback?: HapticFeedback; } /** * Top-level, user-facing provider for `@funkit/connect-rn` — the single * provider host apps mount around their tree. * * Composes the platform halves, mirroring the web `FunkitProvider` nesting * (Statsig flags → React Query → identity → branding → theme → i18n → the * managed flow). Statsig stays outermost so flags are available everywhere; * the deposit-flow query hooks below it read identity from * {@link FunkitIdentityProvider} and run on the {@link QueryClientProvider}. * Host integration stays a single * ``. */ export declare function FunkitProvider({ children, config, walletAddress, queryClient, themes, colorScheme, debug, locale, copyToClipboard, pasteFromClipboard, renderBackdropBlur, liquidGlass, stripeOnramp, hapticFeedback, }: FunkitProviderProps): import("react").JSX.Element; //# sourceMappingURL=FunkitProvider.d.ts.map