/**
 * 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 { EditorSDLCState } from '../EditorSDLCState.js';
import type { Entity } from '@finos/legend-storage';
import { type GeneratorFn, ActionState } from '@finos/legend-shared';
import { EntityChangeConflictEditorState } from '../editor-state/entity-diff-editor-state/EntityChangeConflictEditorState.js';
import { type EntityDiffViewerState } from '../editor-state/entity-diff-editor-state/EntityDiffEditorState.js';
import { EntityDiffViewState } from '../editor-state/entity-diff-editor-state/EntityDiffViewState.js';
import { type EntityChangeConflict, type EntityChangeConflictResolution, type EntityChange, EntityDiff, Revision } from '@finos/legend-server-sdlc';
import { AbstractConflictResolutionState } from '../AbstractConflictResolutionState.js';
declare class WorkspaceSyncConflictResolutionState extends AbstractConflictResolutionState {
    showModal: boolean;
    conflicts: EntityChangeConflict[];
    openMergedEditorStates: EntityDiffViewerState[];
    currentDiffEditorState: EntityDiffViewerState | undefined;
    resolutions: EntityChangeConflictResolution[];
    baseToLocalChanges: EntityDiff[];
    constructor(editorStore: EditorStore, sdlcState: EditorSDLCState);
    get baseEntities(): Entity[];
    get currentEntities(): Entity[];
    get incomingEntities(): Entity[];
    get resolvedChanges(): EntityDiff[];
    get pendingConflicts(): EntityChangeConflict[];
    get changes(): EntityDiff[];
    openState(entityDiffEditorState: EntityDiffViewerState): void;
    openConflict(conflict: EntityChangeConflict): void;
    closeConflict(conflictState: EntityDiffViewerState): void;
    openConflictState(conflictState: EntityChangeConflictEditorState): void;
    resolveConflict(resolution: EntityChangeConflictResolution): void;
    markConflictAsResolved(conflictState: EntityChangeConflictEditorState): GeneratorFn<void>;
    get toEntityGetter(): (entityPath: string | undefined) => Entity | undefined;
    openConflictResolutionChange(diff: EntityDiff): void;
    initialize(conflicts: EntityChangeConflict[], changes: EntityDiff[]): void;
    teardown(): void;
    setShowModal(val: boolean): void;
    setCurrentMergeEditorState(val: EntityDiffViewerState | undefined): void;
    openEntityChangeConflict(entityChangeConflictEditorState: EntityChangeConflictEditorState): void;
    openDiff(entityDiffEditorState: EntityDiffViewState): void;
}
export declare class WorkspaceSyncState {
    readonly editorStore: EditorStore;
    readonly sdlcState: EditorSDLCState;
    pullChangesState: ActionState;
    incomingRevisions: Revision[];
    workspaceSyncConflictResolutionState: WorkspaceSyncConflictResolutionState;
    constructor(editorStore: EditorStore, sdlcState: EditorSDLCState);
    resetConflictState(): void;
    setIncomingRevisions(revisions: Revision[]): void;
    fetchIncomingRevisions(): GeneratorFn<void>;
    pullChanges(): GeneratorFn<void>;
    loadChanges(changes: EntityChange[]): GeneratorFn<void>;
    forcePull(): GeneratorFn<void>;
    applyResolutionChanges(): GeneratorFn<void>;
}
export {};
//# sourceMappingURL=WorkspaceSyncState.d.ts.map