import * as react_jsx_runtime from 'react/jsx-runtime'; import { ComponentType, ReactNode } from 'react'; /** * Navigation adapter interface * Allows different routing implementations (browser, react-router, next.js) */ interface NavigationAdapter { /** * Hook to get URL search parameters * Returns URLSearchParams for consistent API across adapters */ useSearchParams(): URLSearchParams; /** * Link component for navigation * Each adapter provides its own implementation (native , React Router Link, Next.js Link, etc.) */ Link: ComponentType<{ href: string; className?: string; children: ReactNode; }>; } interface NavigationProviderProps { adapter: NavigationAdapter; children: ReactNode; } /** * Navigation Provider * Injects navigation adapter into the component tree */ declare function NavigationProvider({ adapter, children }: NavigationProviderProps): react_jsx_runtime.JSX.Element; /** * Hook to access navigation adapter * @throws Error if used outside NavigationProvider */ declare function useNavigationAdapter(): NavigationAdapter; /** * Browser native navigation adapter * Uses browser's native URLSearchParams and tags * Suitable for vanilla React apps without a routing library */ declare const BrowserNavigationAdapter: NavigationAdapter; /** * Hook to get URL search parameters * Uses the navigation adapter injected by NavigationProvider * * @returns URLSearchParams object * * @example * ```tsx * function MyComponent() { * const searchParams = useSearchParams(); * const redirectUrl = searchParams.get('redirect') || '/'; * // ... * } * ``` */ declare function useSearchParams(): URLSearchParams; export { BrowserNavigationAdapter, type NavigationAdapter, NavigationProvider, type NavigationProviderProps, useNavigationAdapter, useSearchParams };