import { TCromwellBlockData } from '@cromwell/core';
export declare const useBlockEvents: ({ draggable, contentWindowRef, selectedBlock, selectedFrames, updateDraggable, getBlockIdFromHtml, getBlockById, findEditableParent, selectedEditableBlock, invisibleSelectedFrames, createBlockFrame, getFrameColor, editorWidgetWrapperCroppedRef, editorWidgetWrapperRef, getBlockElementById, blockInfos, getBlockData, checkBlockDataGlobal, modifyBlock, isGlobalElem, rerenderBlocks, rerender, }: {
    draggable: any;
    contentWindowRef: any;
    selectedBlock: any;
    selectedFrames: any;
    updateDraggable: any;
    getBlockIdFromHtml: any;
    getBlockById: any;
    findEditableParent: any;
    selectedEditableBlock: any;
    invisibleSelectedFrames: any;
    createBlockFrame: any;
    getFrameColor: any;
    editorWidgetWrapperCroppedRef: any;
    editorWidgetWrapperRef: any;
    getBlockElementById: any;
    blockInfos: any;
    getBlockData: any;
    checkBlockDataGlobal: any;
    modifyBlock: any;
    isGlobalElem: any;
    rerenderBlocks: any;
    rerender: any;
}) => {
    canDragBlock: (draggedBlock: HTMLElement) => boolean;
    canDeselectBlock: (draggedBlock: HTMLElement) => any;
    selectBlock: (blockData: TCromwellBlockData) => void;
    deselectBlock: (block: HTMLElement) => void;
    deselectCurrentBlock: () => void;
    onBlockDeSelected: (block: HTMLElement) => void;
    onBlockSelected: (block: HTMLElement) => void;
    onBlockInserted: (container: HTMLElement, draggedBlock: HTMLElement, nextElement?: HTMLElement | null) => Promise<void>;
    onMouseUp: () => void;
    onTryToInsert: (container: HTMLElement, draggedBlock: HTMLElement, shadow?: HTMLElement) => void;
    addBlock: (config: {
        blockData: TCromwellBlockData;
        targetBlockData?: TCromwellBlockData;
        parentData?: TCromwellBlockData;
        position: 'before' | 'after';
    }) => TCromwellBlockData[];
};
