/**
 * Copyright (c) 2020-present, Goldman Sachs
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
import { type GeneratorFn, ActionState } from '@finos/legend-shared';
import { type SDLCServerClient, WorkspaceType, Project, Workspace } from '@finos/legend-server-sdlc';
import type { LegendStudioApplicationStore } from '../LegendStudioBaseStore.js';
interface ImportProjectSuccessReport {
    projectId: string;
    projectName: string;
    reviewUrl: string;
}
export interface ProjectOption {
    label: string;
    value: string;
}
export interface WorkspaceOption {
    label: string;
    value: Workspace;
    __isNew__?: boolean | undefined;
}
export interface WorkspaceIdentifier {
    workspaceId: string;
    workspaceType: WorkspaceType;
}
export declare class WorkspaceSetupStore {
    applicationStore: LegendStudioApplicationStore;
    sdlcServerClient: SDLCServerClient;
    currentProjectId?: string | undefined;
    currentWorkspaceIdentifier?: WorkspaceIdentifier | undefined;
    projects?: Map<string, Project> | undefined;
    workspacesByProject: Map<string, Map<string, Workspace>>;
    loadWorkspacesState: ActionState;
    createWorkspaceState: ActionState;
    createOrImportProjectState: ActionState;
    loadProjectsState: ActionState;
    showCreateProjectModal: boolean;
    showCreateWorkspaceModal: boolean;
    importProjectSuccessReport?: ImportProjectSuccessReport | undefined;
    constructor(applicationStore: LegendStudioApplicationStore, sdlcServerClient: SDLCServerClient);
    get currentProject(): Project | undefined;
    get currentProjectWorkspaces(): Map<string, Workspace> | undefined;
    get currentWorkspace(): Workspace | undefined;
    get currentWorkspaceCompositeId(): string | undefined;
    init(workspaceId: string | undefined, groupWorkspaceId: string | undefined): void;
    setShowCreateProjectModal(val: boolean): void;
    setShowCreateWorkspaceModal(val: boolean): void;
    setCurrentProjectId(id: string | undefined): void;
    setCurrentWorkspaceIdentifier(val: WorkspaceIdentifier | undefined): void;
    setImportProjectSuccessReport(importProjectSuccessReport: ImportProjectSuccessReport | undefined): void;
    fetchProjects(): GeneratorFn<void>;
    createProject(name: string, description: string, groupId: string, artifactId: string, tags?: string[]): GeneratorFn<void>;
    importProject(id: string, groupId: string, artifactId: string): GeneratorFn<void>;
    get projectOptions(): ProjectOption[];
    get currentProjectWorkspaceOptions(): WorkspaceOption[];
    fetchWorkspaces(projectId: string): GeneratorFn<void>;
    buildWorkspaceCompositeId(workspace: WorkspaceIdentifier): string;
    createWorkspace(projectId: string, workspaceId: string, workspaceType: WorkspaceType): GeneratorFn<void>;
}
export {};
//# sourceMappingURL=WorkspaceSetupStore.d.ts.map