import type { LGraphData } from '@logicflow/core';
import type { PropertyPanelMode } from '../ui/property-panel/types';

export interface FDHighLightType {
  history_node_names: string[];
  history_edge_names: string[];
  active_node_names: string[];
}

export interface FDNodeConfig {
  type: string;
  label: string;
  icon?: string;
  color?: string;
  properties?: any;
  customPanel?: any;
}

export interface FlowDesignerProps {
  value: LGraphData;
  highLight?: FDHighLightType;
  nodeConfig?: FDNodeConfig[];
  viewer?: boolean;
  panelWidth?: number;
  customPanel?: any;
  theme?: 'default' | 'dark';
  initDndPanel?: boolean;
  dndPanel?: Array<any>;
  initControl?: boolean;
  control?: Array<any>;
  nodeClick?: (event: any) => void;
  edgeClick?: (event: any) => void;
  blankContextmenu?: (event: any) => void;
  defaultEdgeType?: string;
  typePrefix?: string;
}
