import type { BlockDataChangeMeta, BlockSpec, BlockRenderContext } from "./types.js"; /** * Resolve a spec's effective edit surface. Defaults to `"inline"` when the block * ships a custom `Edit` (its author built direct-manipulation editing), else * `"panel"` — an auto-form block is a property form, which reads best behind a * corner edit button. An explicit `spec.editSurface` always wins. */ export declare function blockEditSurface(spec: BlockSpec): "inline" | "panel" | "container" | "none"; /** * Render one registered block. In read mode (or when the spec is inline-only and * not editing) it renders the spec's `Read`. In edit mode for a `block`-placed * spec it renders the editor — either inline (the spec's `Edit` or the * schema-driven {@link SchemaBlockEditor}) or, for `editSurface: "panel"` blocks, * the rendered `Read` plus a corner edit button that opens that editor in the * app-provided panel ({@link BlockRenderContext.renderEditSurface}, e.g. a * popover). This is what the app renderer delegates to once the registry * recognizes a block type — the legacy switch handles unregistered types. */ export declare function BlockView({ spec, block, editing, editable, onChange, ctx, compactVisuals, }: { spec: BlockSpec; block: { id: string; title?: string; summary?: string; data: unknown; }; /** Whether the document is in an editable/edit state. */ editing: boolean; /** Whether this specific block allows editing (block.editable !== false). */ editable?: boolean; /** Commit a new `data` value for the block. */ onChange?: (nextData: unknown, meta?: BlockDataChangeMeta) => void; ctx: BlockRenderContext; compactVisuals?: boolean; }): import("react").JSX.Element; //# sourceMappingURL=BlockView.d.ts.map