export interface Repository {
  id: string;
  name: string;
  path: string;
  type: 'git' | 'svn' | 'mercurial' | 'local';
  primary?: boolean;
  remote?: string;
  branch?: string;
  lastSync?: Date;
  dependencies?: string[];
}

export interface Workspace {
  id: string;
  name: string;
  description?: string;
  rootPath: string;
  repositories: Repository[];
  createdAt: Date;
  updatedAt: Date;
  settings?: WorkspaceSettings;
}

export interface WorkspaceSettings {
  autoSync?: boolean;
  syncInterval?: number;
  crossRepoTags?: boolean;
  namingConvention?: {
    taskPrefix?: string;
    branchPrefix?: string;
  };
}

export interface CrossRepoTask {
  id: string;
  title: string;
  description?: string;
  repositories: string[];
  status: 'pending' | 'in-progress' | 'completed' | 'blocked';
  dependencies?: string[];
  epicId?: string;
  createdAt: Date;
  updatedAt: Date;
}

export interface WorkspaceStore {
  workspaces: Record<string, Workspace>;
  activeWorkspaceId?: string;
}