/**
 * 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 { EditorStore } from './EditorStore.js';
import { type GeneratorFn, ActionState } from '@finos/legend-shared';
import { type EntityDiff, type WorkspaceType, Workflow, Project, Revision, Version, Workspace, Patch, AuthorizableProjectAction } from '@finos/legend-server-sdlc';
export declare const entityDiffSorter: (a: EntityDiff, b: EntityDiff) => number;
export declare class EditorSDLCState {
    readonly editorStore: EditorStore;
    readonly fetchPublishedProjectVersionsState: ActionState;
    isWorkspaceOutdated: boolean;
    isCheckingIfWorkspaceIsOutdated: boolean;
    isFetchingProjectVersions: boolean;
    isFetchingProject: boolean;
    currentProject?: Project | undefined;
    currentPatch?: Patch | undefined;
    currentWorkspace?: Workspace | undefined;
    remoteWorkspaceRevision?: Revision | undefined;
    currentRevision?: Revision | undefined;
    workspaceWorkflows: Workflow[];
    projectVersions: Version[];
    projectPublishedVersions: string[];
    authorizedActions: AuthorizableProjectAction[] | undefined;
    constructor(editorStore: EditorStore);
    get activeProject(): Project;
    get isActiveProjectSandbox(): boolean;
    get activeWorkspace(): Workspace;
    get activePatch(): Patch | undefined;
    get activeRevision(): Revision;
    get activeRemoteWorkspaceRevision(): Revision;
    get isWorkspaceOutOfSync(): boolean;
    get canCreateWorkspace(): boolean;
    get canCreateVersion(): boolean;
    unAuthorizedActionMessage(_action: AuthorizableProjectAction): string;
    userCanPerformAction(authorizedAction: AuthorizableProjectAction): boolean;
    setCurrentProject(val: Project): void;
    setCurrentPatch(val: Patch): void;
    setCurrentWorkspace(val: Workspace): void;
    setCurrentRevision(val: Revision): void;
    setWorkspaceLatestRevision(val: Revision): void;
    handleChangeDetectionRefreshIssue(error: Error): void;
    fetchCurrentProject(projectId: string, options?: {
        suppressNotification?: boolean;
    }): GeneratorFn<void>;
    fetchCurrentPatch(projectId: string, patchReleaseVersionId: string | undefined, options?: {
        suppressNotification?: boolean;
    }): GeneratorFn<void>;
    fetchCurrentWorkspace(projectId: string, patchReleaseVersionId: string | undefined, workspaceId: string, workspaceType: WorkspaceType, options?: {
        suppressNotification?: boolean;
    }): GeneratorFn<void>;
    fetchProjectVersions(): GeneratorFn<void>;
    checkIfCurrentWorkspaceIsInConflictResolutionMode(): GeneratorFn<boolean>;
    fetchRemoteWorkspaceRevision(projectId: string, workspace: Workspace): GeneratorFn<void>;
    fetchCurrentRevision(projectId: string, workspace: Workspace): GeneratorFn<void>;
    checkIfWorkspaceIsOutdated(): GeneratorFn<void>;
    buildWorkspaceLatestRevisionEntityHashesIndex(): GeneratorFn<void>;
    buildWorkspaceBaseRevisionEntityHashesIndex(): GeneratorFn<void>;
    buildProjectLatestRevisionEntityHashesIndex(): GeneratorFn<void>;
    fetchWorkspaceWorkflows(): GeneratorFn<void>;
    fetchAuthorizedActions(): GeneratorFn<void>;
    fetchPublishedProjectVersions(): GeneratorFn<void>;
}
//# sourceMappingURL=EditorSDLCState.d.ts.map