import type { Node, NodeTypes, BuiltInNode, Edge } from "@xyflow/react";

export type MindMapNodeType = Node<
    {
        label: string
        level: number
        isExpanded?: boolean
        metadata?: Record<string, number>
    }, "mindmap">

export type MindMapEdgeType = Edge<{
    label: string
}, "mindmap">

export type HistoryState<T> = {
    past: T[];
    present: T;
    future: T[];
};
export type HistoryData = {
    nodes: Node[];
    edges: Edge[];
    selectedNodeId: string | null;
    editingNodeId: string | null; // Add this
};
export type NodeRelationType = 'child' | 'sibling';
export type NodeLayout = {
    horizontalSpacing: number;
    verticalSpacing: number;
    nodeWidth: number;
    nodeHeight: number;
};
