export interface FileSystemNode {
  type: 'directory' | 'file';
  name: string;
  content?: string;
  children?: { [key: string]: FileSystemNode };
}

export interface ResumeData {
  basics: {
    name: string;
    email: string;
    url?: { href: string };
  };
  sections: {
    summary: { name: string; content: string };
    profiles: { name: string; items: { network: string; username: string; url: { href: string } }[] };
    skills: { name: string; items: { id: string; name: string; level: number }[] };
    experience: { name: string; items: { id: string; company: string; position: string; date: string; location: string; summary: string; url?: { href: string } }[] };
    education: { name: string; items: { id: string; institution: string; studyType: string; area: string; date: string; summary: string }[] };
    volunteer: { name: string; items: { id: string; organization: string; position: string; date: string }[] };
  };
}

export interface Command {
  input: string;
  output: string;
  timestamp: Date;
  path: string;
}

export interface TerminalState {
  currentPath: string;
  commandHistory: Command[];
  currentInput: string;
  historyIndex: number;
  fileSystem: { [key: string]: FileSystemNode };
  isTrainRunning: boolean;
  trainPosition: number;
  persistentHistory: string[];
} 