/**
* Copyright Super iPaaS Integration LLC, an IBM Company 2024
*/

import { VCSProject } from "../../vcs/models/vcs-project.model.js";
import { VCSRepoData } from '../../vcs/models/vcs-repo-data.model.js'

export interface IVCSProjectsHandler {
    getProjectsFromAllRepos(): Promise<VCSProject>; // loads projects from indexed db
    getProjectsFromRepos(vcsRepos: VCSRepoData[]): Promise<VCSProject>; // loads projects from repositories
    getProjectsFromRepo(vcsRepo: VCSRepoData): Promise<VCSRepoData>; // loads projects form repository
    /**
     * Updates the project in .apistudio-projects file and renames project folder if project name is updated.
     * @param existingProject The original version of project
     * @param updatedProject Project with updated metadata
    */
    updateProject(existingProject: VCSProject, updatedProject: VCSProject): Promise<void>;
    /**
     * Deletes the given list of vcs projects.
     * @param projects List of vcs projects that have been selected for delete
    */
    deleteProjects(projects: VCSProject[]): Promise<void>;
}
