import { OnInit } from "@angular/core";
import { MatDialog, MatDialogRef } from "@angular/material/dialog";
import { TranslateLibraryService } from "../../../services/translation-registry.service";
import { QMSCKEditorBpmnTemplate } from "../../common/models/qms-ckeditor-bpmn-template.model";
import { QMSCKEditorBpmn } from "../../common/models/qms-ckeditor-bpmn.model";
import { QMSCKEditorBaseComponent } from "../../qms-ckeditor-base.component";
import { QMSCKEditorBpmnApiService } from "../../services/qms-ckeditor-bpmn-api.service";
import { BpmnService } from "../../services/qms-ckeditor-bpmn.service";
import { TargetTypeName } from '../../common/enums/target-type.enum';
import { ShapeFlowChartConnectionType } from '../../common/enums/shape-flow-chart-connection-type';
import { QMSCKEditorBpmnData } from '../../models/qms-ckeditor-bpmn-data.model';
import { QMSCKEditorLinkService } from '../../services/qms-ckeditor-link.service';
import { QMSCKEditorDocumentType } from "../../common/enums/document-type.enum";
import { QMSCKEditorLinkAnchorDocument } from "../../common/models/qms-ckeditor-link-anchor-document.model";
import { MatTabChangeEvent } from "@angular/material/tabs";
import { QMSCKEditorUploadService } from "../../services/qms-ckeditor-upload.service";
interface ITarget {
    id: string;
    name: string;
}
interface IConnectionType {
    id: number;
    name: string;
}
interface IAnchor {
    value: number;
    viewValue: string;
    anchorValue: string;
}
declare class ILink {
    target: TargetTypeName;
    url: string;
    title: string;
    documentType: QMSCKEditorDocumentType;
    icon: string;
    content: string;
    constructor();
}
export declare class QMSCKEditorBpmnComponent extends QMSCKEditorBaseComponent implements OnInit {
    private dialog;
    private translate;
    private bmpnService;
    private bpmnApiService;
    private linkService;
    private uploadService;
    dialogRef: MatDialogRef<QMSCKEditorBpmnComponent>;
    data: QMSCKEditorBpmnData;
    LANG: any;
    jsonContent: string;
    expandedPanel: boolean;
    id: string;
    module: number;
    entityId: string;
    editorContent: string;
    bpmn: QMSCKEditorBpmn;
    bpmnTemlates: QMSCKEditorBpmnTemplate[];
    connectionType: ShapeFlowChartConnectionType;
    selectedConnectionType: ShapeFlowChartConnectionType;
    targets: ITarget[];
    connectionTypes: IConnectionType[];
    selectedTarget: TargetTypeName;
    linkUrl: string;
    linkTitle: string;
    anchorByName: string;
    linkIcon: string;
    linkId: string;
    documentType: QMSCKEditorDocumentType;
    documentIcons: any;
    link: ILink;
    documentAnchors: IAnchor[];
    isLoadingDocumentAnchor: boolean;
    selectedCellView: any;
    constructor(dialog: MatDialog, translate: TranslateLibraryService, bmpnService: BpmnService, bpmnApiService: QMSCKEditorBpmnApiService, linkService: QMSCKEditorLinkService, uploadService: QMSCKEditorUploadService, dialogRef: MatDialogRef<QMSCKEditorBpmnComponent>, data: QMSCKEditorBpmnData);
    onMessage(event: any): void;
    ngOnInit(): Promise<void>;
    initTarget(): void;
    initConnectionType(): void;
    initDocumentIcons(): void;
    initLink(): void;
    expandPanel(): void;
    getTemplates(): Promise<QMSCKEditorBpmnTemplate[]>;
    getJsonContent(id: string): Promise<string>;
    saveImageContent(graphObject: any): Promise<unknown>;
    dataUrlToFile(dataUrl: string, filename: string): File | undefined;
    getImageContent(paper: any): Promise<unknown>;
    onInsertImage(): Promise<void>;
    onCloseDialog(): void;
    removeLink(): void;
    onConnectionTypeChange(): void;
    onAnchorByNameChange(): void;
    openHandbookDialog(isOnlyDocument: boolean): void;
    openAttachmentDialog(): void;
    getAnchorDocument(documentId: any): void;
    extractDocumentAnchors(anchorDocument: QMSCKEditorLinkAnchorDocument[]): IAnchor[];
    reloadAnchors(): void;
    buildLink(): ILink;
    onSaveAsTemplate(): void;
    onSelectedTemplate(): void;
    onDeleteTemplate(title: string, content: string): void;
    onSeletedCellView(): void;
    onTabChange($event: MatTabChangeEvent): void;
    parseLinkUrl(url: string): void;
    getPartialUrl(type: QMSCKEditorDocumentType): string;
    getLinkId(url: string, type: QMSCKEditorDocumentType): string;
    getDocumentType(url: string): QMSCKEditorDocumentType;
    updateCellViewValues(): void;
    onResetTemplate(): void;
    showConfirmDialog(title: string, content: string, isMessage: boolean, callback?: (result?: any) => void): void;
    toImageMap(id: any, cells: any[], clientRect: any): {
        name: any;
        id: any;
        areas: any[];
        imageHeight: number;
        imageWidth: number;
    };
    getMinXOffset(shapes: any): any;
    getXPosition(shape: any): number;
    getYPosition(shape: any): number;
    getMinYOffset(shapes: any): any;
}
export {};
