import { VCSConfigData } from "../models/vcs-config-data.model.js";
import { VCSRepoData } from "../models/vcs-repo-data.model.js";
import { BranchProjectInfo } from "../models/branch-project-info.model.js";
import { ChangedItem } from "../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>;
}
//# sourceMappingURL=vcs-indexed-db.interface.d.ts.map