/**
* Copyright Super iPaaS Integration LLC, an IBM Company 2024
*/
import { Response } from "../../common/models/response-wrapper.js";
import { Project } from "../../lfs/models/project.model.js";
import { RootDirectoryInfo } from "../../lfs/models/root-directory-info.model.js";
export interface ILocalProjectsHandler {
    /**
     * Loads projects from root directory handles from indexed db
     */
    getProjectsFromAllRootDirectories(): Promise<Response<Project[]>>;
    /**
     * Loads projects from given root directory handles
     * @param rootDirectories List of root directories to fetch projects from
     */
    getProjectsFromRootDirectories(rootDirectories: RootDirectoryInfo[]): Promise<Response<Project[]>>;
    /**
     * Loads projects from given root directory handle
     * @param rootDirectory Root directory to fetch project from
     */
    getProjectsFromRootDirectory(rootDirectory: RootDirectoryInfo): Promise<Response<Project[]>>;
    createNewAPIProject(newProject: Project, fileList?: File[]): Promise<Response<Project>>;
    getProjectDirHandle(project: Project): Promise<FileSystemDirectoryHandle | null>;
    /**
     * 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: Project, updatedProject: Project): Promise<void>;
    /**
     * Deletes the given list of local projects.
     * @param projects List of local projects that have been selected for delete
     */
    deleteProjects(projects: Project[]): Promise<void>;
}
//# sourceMappingURL=local-projects-handler.interface.d.ts.map