/**
 * NiceUIDesigner.tsx — Drag & drop UI builder that generates React code.
 *
 * Features:
 * - Visual drag & drop layout builder
 * - Component palette (buttons, inputs, text, containers)
 * - Property editor panel
 * - Responsive breakpoint preview
 * - Export to React/TSX code
 * - Undo/redo support
 */
import React from "react";
export interface UIDesignerProps {
    /** Called when the design changes. */
    onChange?: (tree: UINode[]) => void;
    /** Called on code export. */
    onExport?: (code: string) => void;
    /** CSS class. */
    className?: string;
}
export interface UIDesignerApi {
    tree: UINode[];
    setTree: React.Dispatch<React.SetStateAction<UINode[]>>;
    selectedId: string | null;
    setSelectedId: React.Dispatch<React.SetStateAction<string | null>>;
    addNode: (type: UIComponentType, parentId?: string) => void;
    removeNode: (id: string) => void;
    updateNode: (id: string, updates: Partial<Pick<UINode, "props" | "style">>) => void;
    exportCode: () => string;
}
export interface UINode {
    id: string;
    type: UIComponentType;
    props: Record<string, unknown>;
    children: UINode[];
    style: React.CSSProperties;
}
export type UIComponentType = "Container" | "Row" | "Column" | "Text" | "Heading" | "Button" | "TextInput" | "Image" | "Spacer" | "Divider" | "Card" | "List";
export declare function exportToReact(tree: UINode[], componentName?: string): string;
export declare function useUIDesigner(): UIDesignerApi;
/** Visual drag & drop UI builder that generates React code. */
export declare const NiceUIDesigner: React.FC<UIDesignerProps>;
export default NiceUIDesigner;
