import type {AgentCapabilityKind} from '../../types';

export type AgentStudioNodeKind = 'base' | AgentCapabilityKind;

export interface AgentStudioNodeData {
  badge?: string;
  detail?: string;
  iconKey: AgentStudioNodeKind;
  id: string;
  kind: AgentStudioNodeKind;
  selected: boolean;
  title: string;
}

export interface AgentStudioNodeRenderProps {
  data: AgentStudioNodeData;
}

export interface AgentStudioNodeView {
  id: string;
  position: {
    x: number;
    y: number;
  };
  height?: number;
  type: string;
  width?: number;
  data: AgentStudioNodeData;
}

export interface AgentStudioEdgeView {
  id: string;
  source: string;
  target: string;
}

export interface AgentStudioConnectionView {
  active?: boolean;
  id: string;
  path: string;
  sourceId: string;
  targetId: string;
}

export interface AgentStudioViewport {
  x: number;
  y: number;
  zoom: number;
}

export interface AgentStudioCanvasSize {
  height: number;
  width: number;
}

export interface AgentStudioLayoutSnapshot {
  nodePositions: Record<string, { x: number; y: number }>;
  viewport?: AgentStudioViewport;
}
