import "./setWebpackRequire";
export { default as React } from "react";
export type { Dispatch, MutableRefObject, SetStateAction } from "react";
export { ClientOnly } from "./ClientOnly.js";
export { initClientNavigation, navigate } from "./navigation.js";
export { NavigationPending, useNavigationPending, } from "./navigationPending.js";
export type { NavigationPendingOptions, NavigationPendingProps, NavigationPendingWatch, NavigationPendingWhenArgs, NavigationSearchParamsWatch, } from "./navigationPending.js";
export type { NavigationSnapshot, PendingNavigationSnapshot, } from "./navigationState.js";
export type { ActionResponseData, RscPayloadMeta } from "./types";
import { type RecoveryOptions } from "./recovery.js";
import type { ActionResponseData, HydrationOptions, RscPayloadMeta, Transport } from "./types";
export declare const fetchTransport: Transport;
/**
 * Initializes the React client and hydrates the RSC payload.
 *
 * This function sets up client-side hydration for React Server Components,
 * making the page interactive. Call this from your client entry point.
 *
 * @param transport - Custom transport for server communication (defaults to fetchTransport)
 * @param hydrateRootOptions - Options passed to React's `hydrateRoot`. Supports all React hydration options including:
 *                             - `onUncaughtError`: Handler for uncaught errors (async errors, event handler errors).
 *                               If not provided, defaults to logging errors to console.
 *                             - `onCaughtError`: Handler for errors caught by error boundaries
 *                             - `onRecoverableError`: Handler for recoverable errors
 * @param handleResponse - Custom response handler for navigation errors (navigation GETs)
 * @param onHydrated - Callback invoked after a new RSC payload has been committed on the client
 * @param onActionResponse - Optional hook invoked when an action returns a Response;
 *                           return true to signal that the response has been handled and
 *                           default behaviour (e.g. redirects) should be skipped
 *
 * @example
 * // Basic usage
 * import { initClient, initClientNavigation } from "rwsdk/client";
 *
 * // RedwoodSDK uses RSC RPC to emulate client side navigation.
 * // https://docs.rwsdk.com/guides/frontend/client-side-nav/
 * const { handleResponse, onHydrated } = initClientNavigation();
 * initClient({ handleResponse, onHydrated });
 *
 * @example
 * // With error handling
 * initClient({
 *   hydrateRootOptions: {
 *     onUncaughtError: (error, errorInfo) => {
 *       console.error("Uncaught error:", error);
 *       // Send to monitoring service
 *       sendToSentry(error, errorInfo);
 *     },
 *     onCaughtError: (error, errorInfo) => {
 *       console.error("Caught error:", error);
 *       // Handle errors from error boundaries
 *       sendToSentry(error, errorInfo);
 *     },
 *   },
 * });
 *
 * @example
 * // With custom React hydration options
 * initClient({
 *   hydrateRootOptions: {
 *     onRecoverableError: (error) => {
 *       console.warn("Recoverable error:", error);
 *     },
 *   },
 * });
 */
export declare const initClient: ({ transport, hydrateRootOptions, handleResponse, onHydrated, onActionResponse, onModuleNotFound, }?: {
    transport?: Transport;
    hydrateRootOptions?: HydrationOptions;
    handleResponse?: (response: Response) => boolean;
    onHydrated?: (meta?: RscPayloadMeta) => void;
    onActionResponse?: (actionResponse: ActionResponseData) => boolean | void;
} & RecoveryOptions) => Promise<void>;
