import React, { ReactNode } from 'react'; declare class FusionFetcher { private baseUrl; constructor(baseUrl?: string); private request; get(path: string): Promise; post(path: string, body: any): Promise; put(path: string, body: any): Promise; delete(path: string): Promise; } type WextsRpcClient = Record Promise>>; interface FusionContextType { client: FusionFetcher; wexts: WextsRpcClient; } interface FusionProviderProps { children: ReactNode; baseUrl?: string; rpcBaseUrl?: string; rpcClient?: object; } /** * FusionProvider - Provides API client to React components * Usage: * ```tsx * * * * ``` */ declare function FusionProvider({ children, baseUrl, rpcBaseUrl, rpcClient }: FusionProviderProps): React.JSX.Element; /** * useFusion hook - Access API client in components * Usage: * ```tsx * const { client } = useFusion(); * const data = await client.get('/users'); * ``` */ declare function useFusion(): FusionContextType; declare function useWexts(): TClient; interface AuthUser { id: string; email: string; name?: string; } interface UseAuthReturn { user: AuthUser | null; loading: boolean; login: (email: string, password: string) => Promise; logout: () => Promise; isAuthenticated: boolean; } /** * useAuth hook - Authentication state management * Usage: * ```tsx * const { user, login, logout, isAuthenticated } = useAuth(); * ``` */ declare function useAuth(): UseAuthReturn; export { type AuthUser, FusionProvider, type FusionProviderProps, type UseAuthReturn, useAuth, useFusion, useWexts };