/**
 * RichBlockEditor Organism Component
 *
 * Notion / Lexical-style block authoring editor. Internal state owns the
 * block tree; contentEditable spans flow updates back through onInput.
 *
 * TODO(phase-11): collaboration / undo-redo / markdown export are out of
 * scope for the Phase 10 scaffold.
 */
import React from "react";
import type { EntityRow, EventEmit, EventPayloadValue } from '@almadar/core';
export type BlockType = "paragraph" | "heading-1" | "heading-2" | "heading-3" | "bullet-list" | "numbered-list" | "quote" | "code" | "divider" | "image";
export interface RichBlock {
    id: string;
    type: BlockType;
    content?: string;
    metadata?: Record<string, string | number | boolean>;
    children?: RichBlock[];
    [key: string]: EventPayloadValue;
}
export interface RichBlockEditorProps {
    /**
     * Initial block payload. Accepts strongly-typed RichBlock[] from native
     * callers and the wider EntityRow[] shape that orb-bound traits emit
     * (orb `[object]` lowers to `Record<string, FieldValue | undefined>[]`,
     * which is structurally EntityRow[]). Items missing id/type are normalized
     * into paragraph blocks at mount.
     */
    initialBlocks?: readonly RichBlock[] | readonly EntityRow[];
    onChange?: (blocks: RichBlock[]) => void;
    changeEvent?: EventEmit<{
        blocks: RichBlock[];
    }>;
    readOnly?: boolean;
    placeholder?: string;
    showToolbar?: boolean;
    className?: string;
}
export declare const RichBlockEditor: React.FC<RichBlockEditorProps>;
