import { TheiaSprottyConnector } from '../sprotty/theia-sprotty-connector';
import { DiagramConfigurationRegistry } from './diagram-configuration';
import { OpenerOptions, OpenHandler, FrontendApplicationContribution, ApplicationShell } from "@theia/core/lib/browser";
import URI from "@theia/core/lib/common/uri";
import { DiagramWidget, DiagramWidgetFactory } from "./diagram-widget";
import { DiagramWidgetRegistry } from "./diagram-widget-registry";
import { Emitter, Event, SelectionService } from '@theia/core/lib/common';
import { EditorManager } from '@theia/editor/lib/browser';
export declare const DiagramManagerProvider: unique symbol;
export declare type DiagramManagerProvider = () => Promise<DiagramManager>;
export interface DiagramManager extends OpenHandler, FrontendApplicationContribution {
    readonly diagramType: string;
    readonly onDiagramOpened: Event<URI>;
}
export declare abstract class DiagramManagerImpl implements DiagramManager {
    protected readonly shell: ApplicationShell;
    protected readonly widgetRegistry: DiagramWidgetRegistry;
    protected readonly selectionService: SelectionService;
    protected diagramConfigurationRegistry: DiagramConfigurationRegistry;
    protected editorManager: EditorManager;
    protected readonly onDiagramOpenedEmitter: Emitter<URI>;
    abstract readonly diagramType: string;
    abstract iconClass: string;
    readonly id: string;
    readonly onDiagramOpened: Event<URI>;
    canHandle(uri: URI, options?: OpenerOptions | undefined): number;
    open(uri: URI, input?: OpenerOptions): Promise<DiagramWidget>;
    protected getOrCreateDiagramWidget(uri: URI): Promise<DiagramWidget>;
    protected createDiagramWidget(uri: URI): DiagramWidget;
    protected addToShell(widget: DiagramWidget): void;
    protected readonly diagramWidgetFactory: DiagramWidgetFactory;
    readonly diagramConnector: TheiaSprottyConnector | undefined;
}
//# sourceMappingURL=diagram-manager.d.ts.map