/********************************************************************************
 * Copyright (c) 2020-2023 EclipseSource and others.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v. 2.0 which is available at
 * http://www.eclipse.org/legal/epl-2.0.
 *
 * This Source Code may also be made available under the following Secondary
 * Licenses when the conditions for such availability set forth in the Eclipse
 * Public License v. 2.0 are satisfied: GNU General Public License, version 2
 * with the GNU Classpath Exception which is available at
 * https://www.gnu.org/software/classpath/license.html.
 *
 * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
 ********************************************************************************/
import { EditorContextService, GModelElement, GModelRoot, SelectionService } from '@eclipse-glsp/client';
import { DisposableCollection } from '@theia/core';
import { ApplicationShell } from '@theia/core/lib/browser';
import { ContextKey, ContextKeyService } from '@theia/core/lib/browser/context-key-service';
import { GLSPDiagramWidget } from './glsp-diagram-widget';
export declare abstract class AbstractGLSPDiagramContextKeyService {
    protected readonly shell: ApplicationShell;
    protected readonly contextKeyService: ContextKeyService;
    protected disposeOnUpdate: DisposableCollection;
    protected init(): void;
    protected updateContextKeys(): void;
    protected updateSelectionContextKeys(root: Readonly<GModelRoot>, selectedElementIds: string[]): void;
    protected getSelectionService(glspDiagramWidget: GLSPDiagramWidget): SelectionService;
    protected getEditorContextService(glspDiagramWidget: GLSPDiagramWidget): EditorContextService;
    protected getDiagramWidget(): GLSPDiagramWidget | undefined;
    protected resetContextKeys(): void;
    protected abstract registerContextKeys(): void;
    protected abstract doUpdateStaticContextKeys(glspDiagramWidget: GLSPDiagramWidget): void;
    protected abstract doResetStaticContextKeys(): void;
    protected abstract doUpdateSelectionContextKeys(selectedElements: GModelElement[]): void;
    protected abstract doResetSelectionContextKeys(): void;
    protected abstract doUpdateEditModeContextKeys(editMode: string): void;
    protected abstract doResetEditModeContextKeys(): void;
}
export declare class GLSPDiagramContextKeyService extends AbstractGLSPDiagramContextKeyService {
    protected _glspEditorFocus: ContextKey<boolean>;
    get glspEditorFocus(): ContextKey<boolean>;
    protected _glspEditorDiagramType: ContextKey<string>;
    get glspEditorDiagramType(): ContextKey<string>;
    protected _glspEditorHasSelection: ContextKey<boolean>;
    get glspEditorHasSelection(): ContextKey<boolean>;
    protected _glspEditorHasSelectionOfType: ContextKey<string>;
    get glspEditorHasSelectionOfType(): ContextKey<string>;
    protected _glspEditorHasMultipleSelection: ContextKey<boolean>;
    get glspEditorHasMultipleSelection(): ContextKey<boolean>;
    protected _glspEditorHasDeletableSelection: ContextKey<boolean>;
    get glspEditorHasDeletableSelection(): ContextKey<boolean>;
    protected _glspEditorHasMoveableSelection: ContextKey<boolean>;
    get glspEditorHasMoveableSelection(): ContextKey<boolean>;
    protected _glspEditorIsReadonly: ContextKey<boolean>;
    get glspEditorIsReadonly(): ContextKey<boolean>;
    protected registerContextKeys(): void;
    protected doUpdateStaticContextKeys(glspDiagramWidget: GLSPDiagramWidget): void;
    protected doResetStaticContextKeys(): void;
    protected doUpdateSelectionContextKeys(selectedElements: GModelElement[]): void;
    protected doUpdateEditModeContextKeys(editMode: string): void;
    protected doResetSelectionContextKeys(): void;
    protected doResetEditModeContextKeys(): void;
}
//# sourceMappingURL=glsp-diagram-context-key-service.d.ts.map