import type { SyntheticListenerMap } from '@dnd-kit/core/dist/hooks/utilities';
import { type EditorBlockId } from '@riverbankcms/core';
import type { PageDesignEditorBlock } from '@riverbankcms/theme-core/site-styles';
import type { SystemBlockDefinition } from '@riverbankcms/blocks';
import type { BlockDraftSaveability } from '@riverbankcms/block-form/client';
import type { FieldWidgetComponent } from '@riverbankcms/block-form/client';
import type { Theme } from '@riverbankcms/blocks';
import { type ReorderControlMode } from './reorderControlMode';
import type { ArrayKeysManager, BlockFocusRequest, BlockItem, UiStore, DraftsSlice, UiSlice } from './types';
/** Drag listener props from dnd-kit */
type DragListeners = SyntheticListenerMap | undefined;
type BlockCardStore = UiStore<Pick<UiSlice, 'activeBlockId' | 'setActiveBlockId' | 'setActivePreviewField'> & {
    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' | 'getAtPath' | 'setAtPath' | 'edit' | 'initNewBlock' | 'updateBlockBaseline' | 'clearError'>;
    arrayKeys: ArrayKeysManager;
}>;
export declare function BlockCard({ siteId, block, manifest, isFirst, isLast, isMoving, onMove, onDuplicate, onDelete, dragListeners, canReorder, collapsed, onCollapsedChange, highlighted, hasRecoveryConflict, focusSignal, onFocusHandled, onBlockSave, theme, widgetOverrides, uiStore, hideThemeV2RawStyleFields, pageDesignBlock, reorderControlMode, }: {
    siteId: string;
    block: BlockItem;
    manifest: SystemBlockDefinition['manifest'];
    isFirst: boolean;
    isLast: boolean;
    isMoving: boolean;
    onMove: (blockId: string, direction: number) => void;
    onDuplicate?: (blockId: string) => void;
    onDelete?: (blockId: string) => void;
    dragListeners?: DragListeners;
    canReorder: boolean;
    collapsed: boolean;
    onCollapsedChange: (collapsed: boolean) => void;
    highlighted: boolean;
    hasRecoveryConflict: boolean;
    focusSignal?: BlockFocusRequest | null;
    onFocusHandled?: (requestId: number) => void;
    onBlockSave?: (blockId: string, content: Record<string, unknown>) => void;
    theme?: Theme | null;
    widgetOverrides?: Record<string, FieldWidgetComponent>;
    uiStore: BlockCardStore;
    hideThemeV2RawStyleFields?: boolean;
    pageDesignBlock?: PageDesignEditorBlock | null;
    reorderControlMode?: ReorderControlMode;
}): import("react/jsx-runtime").JSX.Element;
export {};
