import { type ReactNode } from 'react'; import type { StripeOnrampClient } from '../fiat/providers/stripeOnramp'; import type { BackdropBlurRenderer } from '../flow/FlowSheet'; import { type ClipboardWriter, type SafeClipboardReader } from '../transfer/clipboard'; /** * Natively-backed abilities carried in reach of every screen rather than just * where they were built. Most are host-injected overrides; the Stripe client is * built by this package from host *config* (see `useStripeOnrampClient`) and * placed here the same way, so screens read one shape either way. */ export interface NativeCapabilities { /** Stripe Embedded Components, present only when the host configured an account. */ stripeOnramp?: StripeOnrampClient; /** * Host replacement for the material under the flow's translucent surfaces. * Carried here because a drawer that opens over a translucent sheet needs the * same material behind it, and it is presented from a step several levels * below the host. See {@link BackdropBlurRenderer}. */ renderBackdropBlur?: BackdropBlurRenderer; /** * Whether the material is iOS 26 Liquid Glass. The sheet then paints no fill * over it — a fill over a refractive material flattens it back to a panel. * Unset, it follows the package's own material. */ liquidGlass?: boolean; /** * Clipboard write, host override or the bare-RN default. Unguarded: its * `false`/throw is meaningful to callers that confirm the copy landed (see * useCopyDepositAddress), so wrapping happens where the result is compared. */ copyToClipboard?: ClipboardWriter; /** Clipboard read, already guarded — a denied or failed read is `undefined`. */ pasteFromClipboard?: SafeClipboardReader; } /** {@link NativeCapabilities} with the package defaults filled in. */ export type ResolvedNativeCapabilities = NativeCapabilities & { copyToClipboard: ClipboardWriter; pasteFromClipboard: SafeClipboardReader; }; export declare function NativeCapabilitiesProvider({ capabilities, children, }: { capabilities: NativeCapabilities; children: ReactNode; }): import("react").JSX.Element; /** * The capabilities with the clipboard pair resolved to the bare-RN defaults, so * a subtree rendered without the provider (unit tests, Storybook) still has a * working clipboard. The material resolves in {@link useBackdropBlur}. */ export declare function useNativeCapabilities(): ResolvedNativeCapabilities; /** The host's material, or the package's own when it supplied none. */ export declare function useBackdropBlur(): BackdropBlurRenderer; /** Whether the material in use is Liquid Glass — see {@link NativeCapabilities.liquidGlass}. */ export declare function useLiquidGlass(): boolean; /** The Stripe Embedded Components client, or `undefined` with no Stripe config. */ export declare function useStripeOnramp(): StripeOnrampClient | undefined; //# sourceMappingURL=NativeCapabilitiesContext.d.ts.map