export { b as Page, P as PageProps } from '../loadPage-BElEkA_J.js';
export { H as HeaderData, L as Layout, a as LayoutProps } from '../Layout-CHG77dhK.js';
import * as react_jsx_runtime from 'react/jsx-runtime';
import * as React from 'react';
import { T as Theme } from '../types-5XdVD2J1.js';
import '../schema-Bpy9N5ZI.js';
import { R as RiverbankClient } from '../types-CAnC529E.js';
import { B as BlockKind } from '../blockKinds-B6MWzNWp.js';
import 'zod';
import '../types-DSFvXKhO.js';
import '@riverbankcms/site-renderer';
import '@riverbankcms/ai';
import '@riverbankcms/media-storage-supabase';
import '@riverbankcms/db';

/**
 * Override component for custom block rendering.
 * Receives the same props as default block components.
 */
type BlockOverrideComponent = React.ComponentType<{
    content: Record<string, unknown>;
    theme?: Record<string, unknown>;
    themeConfig?: Theme;
    data?: Record<string, unknown>;
    blockId?: string | null;
    blockKind?: BlockKind;
}>;
type BlockProps = {
    blockKind: BlockKind;
    blockId?: string | null;
    content: Record<string, unknown>;
    theme: Theme;
    siteId: string;
    pageId?: string;
    previewStage?: 'published' | 'preview';
    client?: RiverbankClient;
    usePlaceholders?: boolean;
    /**
     * Custom component to override default block rendering.
     * When provided, renders this component instead of the manifest-based default.
     * This is SSR-safe - no context or hooks required.
     *
     * @example
     * ```tsx
     * <Block
     *   blockKind="block.hero"
     *   content={heroContent}
     *   theme={theme}
     *   siteId={siteId}
     *   override={MyCustomHero}
     * />
     * ```
     */
    override?: BlockOverrideComponent;
};
/**
 * Renders a single CMS block with optional data loading.
 *
 * Use this component when you want to render individual blocks outside of a full page context,
 * or when mixing CMS blocks with custom JSX.
 *
 * @example Basic usage
 * ```tsx
 * <Block
 *   blockKind="block.hero"
 *   content={{ headline: 'Welcome', subheadline: 'To our site' }}
 *   theme={theme}
 *   siteId="site-123"
 * />
 * ```
 *
 * @example With data loading
 * ```tsx
 * <Block
 *   blockKind="block.blog-listing"
 *   blockId="block-456"
 *   content={blockContent}
 *   theme={theme}
 *   siteId="site-123"
 *   pageId="page-789"
 *   client={client}
 * />
 * ```
 */
declare function Block({ blockKind, blockId, content, theme, siteId, pageId, previewStage, client, usePlaceholders: _usePlaceholders, override: OverrideComponent, }: BlockProps): Promise<react_jsx_runtime.JSX.Element>;

export { Block, type BlockProps };
