import type { ApiClient } from '@riverbankcms/api/request';
import { type EditorInsertBlockCommand } from '@riverbankcms/core';
import type { BlockItem, BlockFocusTarget } from '../types';
type UiStore = {
    getState: () => {
        history: {
            applyCommand?: (command: EditorInsertBlockCommand) => void;
        };
    };
};
export declare function useBlockDuplication({ allowCreation, apiClient, siteId, pageId, blockList, setBlockList, onBlocksChange, triggerFocus, setErrorMessage, uiStore, }: {
    allowCreation: boolean;
    apiClient: ApiClient;
    siteId: string;
    pageId: string;
    blockList: BlockItem[];
    setBlockList: (next: BlockItem[]) => void;
    onBlocksChange?: (blocks: BlockItem[]) => void;
    triggerFocus?: (target: BlockFocusTarget) => void;
    setErrorMessage: (msg: string | null) => void;
    uiStore?: UiStore | null;
}): {
    duplicatingBlockId: string | null;
    duplicateBlock: (blockId: string) => Promise<void>;
};
export {};
