/**
 * React hooks for Riverbank CMS
 *
 * These hooks provide a convenient way to fetch Builder content
 * in React components (both Server and Client Components).
 */
import type { RiverbankClient, SiteResponse } from '../client/types';
export { usePage } from '../rendering/hooks/usePage';
export type { UsePageParams, UsePageResult } from '../rendering/hooks/usePage';
/**
 * Hook to fetch site data (Server Component compatible)
 *
 * @example Server Component
 * ```tsx
 * const site = use(client.getSite({ slug: 'my-site' }));
 * ```
 *
 * @example Client Component
 * ```tsx
 * 'use client';
 * const [site, setSite] = useState(null);
 * useEffect(() => {
 *   client.getSite({ slug: 'my-site' }).then(setSite);
 * }, []);
 * ```
 */
export declare function useSite(client: RiverbankClient, params: {
    slug?: string;
    domain?: string;
    id?: string;
}): SiteResponse;
/**
 * Simple hook to fetch raw page data (Server Component compatible)
 *
 * For a more complete client-side hook with loading states and prefetched data,
 * use the usePage export from this module instead.
 *
 * @example
 * ```tsx
 * const page = use(client.getPage({ siteId: site.site.id, path: '/' }));
 * ```
 */
export declare function usePageRaw(client: RiverbankClient, params: {
    siteId: string;
    path: string;
}): import("..").PageResponse;
/**
 * Hook to fetch content entries
 *
 * @example
 * ```tsx
 * const entries = use(client.getEntries({ siteId: site.site.id, contentType: 'blog' }));
 * ```
 */
export declare function useEntries(client: RiverbankClient, params: {
    siteId: string;
    contentType: string;
}): import("..").EntriesResponse;
/**
 * Hook to fetch a single content entry
 *
 * @example
 * ```tsx
 * const entry = use(client.getEntry({ siteId: site.site.id, contentType: 'blog', slug: 'my-post' }));
 * ```
 */
export declare function useEntry(client: RiverbankClient, params: {
    siteId: string;
    contentType: string;
    slug: string;
}): import("..").EntryResponse;
/**
 * Note: These hooks use React's use() API which works in Server Components.
 * For Client Components, you'll want to wrap these with useState/useEffect
 * or use a data fetching library like SWR or React Query.
 *
 * Example with useState:
 * ```tsx
 * 'use client';
 * import { useState, useEffect } from 'react';
 *
 * function MyComponent({ client }) {
 *   const [site, setSite] = useState(null);
 *   const [loading, setLoading] = useState(true);
 *
 *   useEffect(() => {
 *     client.getSite({ slug: 'my-site' })
 *       .then(setSite)
 *       .finally(() => setLoading(false));
 *   }, []);
 *
 *   if (loading) return <div>Loading...</div>;
 *   return <div>{site.site.title}</div>;
 * }
 * ```
 */
