/**
 * Copyright Super iPaaS Integration LLC, an IBM Company 2024
 */
import { VCSConfigData } from "../../vcs/models/vcs-config-data.model.js";
import { VCSRepoData } from "../../vcs/models/vcs-repo-data.model.js";
import { BranchProjectInfo } from "../../vcs/models/branch-project-info.model.js";
import { ChangedItem } from "../../vcs/models/changed-item.model.js";
export interface IStudioVcsIndexedDbHandler {
    setVCSConfig(configData: VCSConfigData): Promise<void>;
    getVCSConfig(): Promise<VCSConfigData | void>;
    setRemoteRepository(remoteRepoData: VCSRepoData[]): Promise<void>;
    getRemoteRepositories(): Promise<VCSRepoData[] | void>;
    setRepoProjectsData(repoNameWithOwner: string, branchProjectInfo: BranchProjectInfo): Promise<void>;
    getRepoProjectsData(repoNameWithOwner: string): Promise<BranchProjectInfo | void>;
    updateChangedItem(repoNameWithOwner: string, branchName: string, changedItem: ChangedItem, isChangeDiscarded: boolean): Promise<void>;
    deleteBranchChangedItems(repoNameWithOwner: string, branchName: string): Promise<void>;
    setAllChangedItems(repoNameWithOwner: string, branchName: string, changedItems: ChangedItem[]): Promise<void>;
    getAllChangedItems(repoNameWithOwner: string, branchName: string): Promise<ChangedItem[] | void>;
    setLastCommitId(repoNameWithOwner: string, branchName: string, lastCommitId: string): Promise<void>;
    getLastCommitId(repoNameWithOwner: string, branchName: string): Promise<string | null>;
    deleteLastCommitId(repoNameWithOwner: string, branchName: string): Promise<void>;
    deleteRepository(repoNameWithOwner: string): Promise<void>;
    deleteAllRepositoryData(): Promise<void>;
    copyBranchSpecificChangedItemsToCreatedBranch(repoNameWithOwner: string, BasebranchName: string, NewbranchName: string): Promise<void>;
}
//# sourceMappingURL=vcs-indexed-db.interface.d.ts.map