import URI from "@theia/core/lib/common/uri";
import { Emitter, Event, MaybePromise } from "@theia/core/lib/common";
import { Widget } from "@phosphor/widgets";
import { DiagramWidget } from './diagram-widget';
export declare class DiagramWidgetRegistry {
    protected idSequence: number;
    protected readonly widgets: Map<string, MaybePromise<DiagramWidget>>;
    protected readonly widgetsById: Map<string, DiagramWidget>;
    protected readonly onWidgetsChangedEmitter: Emitter<void>;
    onWidgetsChanged(): Event<void>;
    getWidgetCount(): number;
    getOpenedWidgets(): Widget[];
    getWidget(uri: URI, diagramType: string): Promise<DiagramWidget | undefined>;
    getWidgetById(widgetId: string): DiagramWidget | undefined;
    addWidget(uri: URI, diagramType: string, widget: DiagramWidget): void;
    removeWidget(uri: URI, diagramType: string): void;
    protected getKey(uri: URI, diagramType: string): string;
    nextId(): string;
}
//# sourceMappingURL=diagram-widget-registry.d.ts.map