/********************************************************************************
 * Copyright (c) 2018-2020 TypeFox 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 { WidgetOpenHandler, WidgetManager, WidgetOpenerOptions, WidgetFactory } from "@theia/core/lib/browser";
import URI from "@theia/core/lib/common/uri";
import { EditorManager } from "@theia/editor/lib/browser";
import { TheiaSprottyConnector } from "../sprotty/theia-sprotty-connector";
import { DiagramWidget, DiagramWidgetFactory } from "./diagram-widget";
import { DiagramConfigurationRegistry } from "./diagram-configuration";
export declare const DiagramManagerProvider: unique symbol;
export declare type DiagramManagerProvider = () => Promise<DiagramManager>;
export declare abstract class DiagramManager extends WidgetOpenHandler<DiagramWidget> implements WidgetFactory {
    protected readonly widgetManager: WidgetManager;
    protected readonly editorManager: EditorManager;
    protected readonly widgetFactory: DiagramWidgetFactory;
    diagramConfigurationRegistry: DiagramConfigurationRegistry;
    abstract get diagramType(): string;
    abstract get iconClass(): string;
    private widgetCount;
    canHandle(uri: URI, options?: WidgetOpenerOptions | undefined): number;
    doOpen(widget: DiagramWidget, options?: WidgetOpenerOptions): Promise<void>;
    get id(): string;
    protected createWidgetOptions(uri: URI, options?: WidgetOpenerOptions): Object;
    createWidget(options?: any): Promise<DiagramWidget>;
    protected createClientId(): string;
    get diagramConnector(): TheiaSprottyConnector | undefined;
}
//# sourceMappingURL=diagram-manager.d.ts.map