import { type FieldWidgetComponent } from '@riverbankcms/block-form/client';
import type { BlockDraftSaveability } from '@riverbankcms/block-form/client';
import type { BlockManifest, Theme } from '@riverbankcms/blocks';
import { type PageDesignEditorBlock } from '@riverbankcms/theme-core/site-styles';
import { type EditorBlockId } from '@riverbankcms/core';
import type { ArrayKeysManager, DraftsSlice, UiStore as BlockEditorUiStore } from './block-editor/types';
type UiStoreState = {
    setActivePreviewField: (field: {
        blockId: EditorBlockId;
        fieldPath: string;
    } | null) => void;
    blockValidation: {
        markPathEdited: (blockId: EditorBlockId, path: string) => void;
        isPathEdited: (blockId: EditorBlockId, path: string) => boolean;
        showAllValidation: (blockId: EditorBlockId) => boolean;
        getBlockSaveability: (blockId: EditorBlockId) => BlockDraftSaveability;
    };
    drafts: Pick<DraftsSlice, 'getBlockSnapshot' | 'getCurrentValues' | 'initNewBlock' | 'updateBlockBaseline' | 'clearError' | 'setAtPath' | 'getAtPath'>;
    arrayKeys: ArrayKeysManager;
};
type UiStore = BlockEditorUiStore<UiStoreState>;
type BlockItem = {
    id?: string | null;
    kind: string;
    content?: Record<string, unknown> | null;
    draftContent?: Record<string, unknown> | null;
    publishedContent?: Record<string, unknown> | null;
    orderIndex?: number | null;
};
type BlockFormFocusSignal = {
    requestId: number;
    fieldPath?: string | null;
    itemIndex?: number | null;
};
export declare function BlockForm({ siteId: _siteId, block, manifest, uiStore, hasRecoveryConflict, focusSignal, onFocusHandled, onSaveSuccess: _onSaveSuccess, theme, widgetOverrides, hideThemeV2RawStyleFields, pageDesignBlock, }: {
    siteId: string;
    block: BlockItem;
    manifest: BlockManifest;
    uiStore: UiStore;
    hasRecoveryConflict?: boolean;
    focusSignal?: BlockFormFocusSignal | null;
    onFocusHandled?: (requestId: number) => void;
    onSaveSuccess?: (data: Record<string, unknown>) => void;
    theme?: Theme | null;
    widgetOverrides?: Record<string, FieldWidgetComponent>;
    hideThemeV2RawStyleFields?: boolean;
    pageDesignBlock?: PageDesignEditorBlock | null;
}): import("react/jsx-runtime").JSX.Element | null;
export {};
