import type { OpenFlowOptions } from "./client.js"; /** Options for the React Native `useFlow` hook. */ export interface UseFlowOptions { /** The flow/survey ID to control. */ flowId: string; /** Prefetch the flow resources when the hook mounts. Default `false`. */ prefetchOnMount?: boolean; /** When true, the flow does not show a close button. */ hideCloseButton?: boolean; } /** Per-open options for the React Native `useFlow` hook. */ export type UseFlowOpenOptions = Pick; /** State and commands for one React Native on-demand flow. */ export interface UseFlowReturn { /** True when the flow has an active, measured projected view. */ readonly isOpen: boolean; /** True while the runtime is preparing this flow for display. */ readonly isLoading: boolean; /** Open the flow. */ readonly open: (options?: UseFlowOpenOptions) => Promise; /** Close the flow. */ readonly close: () => Promise; /** Prefetch the flow resources without opening it. */ readonly prefetch: () => Promise; /** Prerender the flow without opening it. */ readonly prerender: () => Promise; } /** * Controls one on-demand flow in the provider's native presentation surface. * React Native custom containers remain provider-wide via `useFlowContainer()`. */ export declare function useFlow(options: UseFlowOptions): UseFlowReturn;