import React from 'react';
import { ComponentData } from '../../types/ComponentData';
import { BREAKPOINT_INDEX_BY_DEVICE, DEVICE_TYPE } from '../constants';
export declare type CDContextType = {
    currentActivePath: number[] | null;
    currentActive: ComponentData | null;
    currentNodeList: ComponentData[];
    parentNodeList: (path: number[]) => ComponentData[];
    activeNode: (cd: ComponentData | null) => void;
    isActiveNode: (cd: ComponentData | null) => boolean;
    hoverNode: (cd: ComponentData | null) => void;
    isHoverNode: (cd: ComponentData | null) => boolean;
    isDragging: boolean;
    setIsDragging: (value: boolean) => void;
    data: ComponentData;
    selectNode: (path: number[]) => ComponentData | null;
    insertNode: (path: number[]) => (cd: ComponentData) => void;
    updateNode: (path: number[]) => (cb: (cd: ComponentData) => ComponentData, pushToHistory?: boolean) => void;
    deleteNode: (path: number[]) => void;
    insertBefore: (sourceNode: ComponentData) => (targetNode: ComponentData) => void;
    insertAfter: (sourceNode: ComponentData) => (targetNode: ComponentData) => void;
    appendNode: (sourceNode: ComponentData) => (targetNode: ComponentData) => void;
    findNodePath: (node: ComponentData) => number[] | null;
    moveNode: (oldPath: number[]) => (newPath: number[], index?: number) => void;
    undo: () => void;
    redo: () => void;
    isSnippetModalOpen: boolean;
    openSnippetModal: () => void;
    closeSnippetModal: () => void;
    isCssJsModalOpen: boolean;
    openCssJsModal: () => void;
    closeCssJsModal: () => void;
    customCss: string;
    customJs: string;
    setCustomCss: (value: string) => void;
    setCustomJs: (value: string) => void;
    currentDeviceType: DEVICE_TYPE;
    currentDeviceIndex: BREAKPOINT_INDEX_BY_DEVICE;
    updateDeviceType: (type: DEVICE_TYPE) => () => void;
};
export declare const CDProvider: ({ children, initialRoot, initialCss, initialJs, }: {
    children?: React.ReactElement<any, string | React.JSXElementConstructor<any>> | undefined;
    initialRoot?: ComponentData | undefined;
    initialCss?: string | undefined;
    initialJs?: string | undefined;
}) => JSX.Element;
export declare const useCDHook: () => CDContextType;
