/**
 * Copyright IBM Corp. 2024, 2025
 */
import { AssetMetadata } from '../../lfs/models/asset-metadata.model.js';
import { Assets } from '../../lfs/models/assets.model.js';
import { APICProject } from '../../apic-mode/models/apic-project.model.js';
import { Project } from '../../lfs/models/project.model.js';
import { RootDirectoryInfo } from '../../lfs/models/root-directory-info.model.js';
import { VCSProject } from '../../vcs/models/vcs-project.model.js';
export type ProjectState = {
    projects: (Project | VCSProject | APICProject)[];
    active: Project | VCSProject | APICProject | null;
    repoWorkingBranch: string | null;
    isApicProjectsLoading: boolean;
    activeTabIndex: number;
    apicProjectNameToIdMap: Map<string, string>;
};
export type ProjectAssetKeys = keyof Omit<Assets, 'otherFiles'>;
export type ProjectActions = {
    intializeStore: () => Promise<void>;
    initializeAPICStore: () => Promise<void>;
    loadProjectsForParentsFolder: (rootDirectoryInfo: RootDirectoryInfo) => Promise<void>;
    loadProjectsForParentsFolders: (rootDirectories: RootDirectoryInfo[]) => Promise<void>;
    addProject: (newProject: Project | VCSProject | APICProject) => void;
    createProject: (newProject: Project | VCSProject, fileList?: File[]) => Promise<void>;
    updateProject: (prevProject: Project | VCSProject, updatedProject: Project | VCSProject) => void;
    openProject: (project: Project | VCSProject | APICProject) => Promise<void>;
    refreshProject: (project: Project | VCSProject | APICProject) => Promise<void>;
    toggleIsPinnedProject: (projectName: string, rootDirectoryAlias: string) => void;
    deleteProjects: (parentFolderAlias: string[]) => void;
    removeProjects: (projects: (Project | VCSProject | APICProject)[]) => void;
    addProjects: (newProject: (Project | VCSProject | APICProject)[]) => Promise<void>;
    setActive: (project: Project | VCSProject | APICProject | null) => void;
    setLastUpdatedForActiveProject: (lastUpdated?: number) => void;
    intializeVcsStore: () => Promise<void>;
    removeAllVCSProject: () => void;
    refreshActiveProject: () => Promise<void>;
    setActiveOnVcsCommitAndPush: (project: Project | VCSProject | null) => void;
    resetProjectsForEmbeddedMode: () => void;
    getAllAssetsInfo: (assetAccessKey: ProjectAssetKeys) => AssetMetadata[];
};
//# sourceMappingURL=project-store.model.d.ts.map