type GraphNodeID = string;

export interface GraphNode {
  id: GraphNodeID;
  name: string;
  fieldID: string;
  child: GraphNode[];
  label: string;
}

export interface GraphEdge {
  source: GraphNodeID;
  target: GraphNodeID;
}

export interface GraphData {
  nodes: GraphNode[];
  edges: GraphEdge[];
}

export interface Property {
  name: string,
  docCount: number,
  keywords: {[index: string]: number}
}

export interface Request {
  name: string;
  id?: number;
  size: number;
  findParents: boolean;
  findChildren: boolean;
}

export interface SubjectNode {
  id: number;
  name: string;
  fieldID: string;
  children: SubjectNode[];
}

