import { EventEmitter, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';
import { UntypedFormControl } from '@angular/forms';
import { MatDialog } from '@angular/material/dialog';
import { MatIconRegistry } from '@angular/material/icon';
import { MatTabChangeEvent } from '@angular/material/tabs';
import { DomSanitizer } from '@angular/platform-browser';
import { Observable, Subject } from 'rxjs';
import { BpmnAddConnectionType } from '../../common/enum/bpmn-add-connection-type.enum';
import { DataType } from '../../common/enum/data-type.enum';
import { ShapeConnectionActionEnum } from '../../common/enum/shape-connection-action.enum';
import { ShapeTargets } from '../../common/enum/shape-targets.enum';
import { QMSCKEditorBpmnExpand } from '../../qms-ckeditor-components/common/enums/ckeditor-bpmn-expand.enum';
import { FlowchartViewMode } from '../../qms-ckeditor-components/common/enums/flowchart-view-mode.enum';
import { RelatedItemType } from '../../qms-ckeditor-components/common/enums/related-to-item-type';
import { ShapeFlowChartConnectionType } from '../../qms-ckeditor-components/common/enums/shape-flow-chart-connection-type';
import { TargetTypeName } from '../../qms-ckeditor-components/common/enums/target-type.enum';
import { ConnectType } from '../../qms-ckeditor-components/models/connect-type.model';
import { QMSBPMNConfig } from '../../qms-ckeditor-components/models/qms-bpmn-config.model';
import { BpmnService } from '../../services/qms-bpmn.service';
import { TranslateLibraryService } from '../../services/translation-registry.service';
import { QMSIconRegistryService } from '../app-icon/icon-registry.service';
import { ChangeDocumentAnchorForShapeEventModel } from './models/change-document-anchor-for-shape-event.model';
import { ActivityRelatedItems } from './models/flow-chart-shape/activity-related-items';
import { ShapeLink } from './models/flow-chart-shape/shape-link';
import { RemoveShapeConnectionItemEventModel, UpdateShapeConnectionItemEventModel } from './models/remove-shape-connection-item-event.model';
import { ShapeConnectionActionEventModel } from './models/shape-connection-action-event.model';
import { ConnectionField, ShapeConnectionDetailModel } from './models/shape-connection-detail.model';
import { ShapeFlowChartConnectionDetail } from './models/shape-flow-chart-connection-detail.model';
import { ShapeModel } from './models/shape-model.model';
import * as i0 from "@angular/core";
interface Target {
    value: any;
    viewValue: string;
}
interface Anchor {
    value: number;
    viewValue: string;
    anchorValue: string;
}
export declare class QMSBPMNComponent implements OnInit, OnDestroy, OnChanges {
    private translate;
    private bpmnService;
    private dialog;
    private appIconService;
    private iconRegistry;
    private domSanitizer;
    LANG: any;
    ngUnsubscribe: Subject<void>;
    QMSBPMNConfig: QMSBPMNConfig;
    editMode: number;
    shapeModel: ShapeModel;
    targets: Target[];
    anchors: Anchor[];
    shapeConnectionDetailModel: ShapeConnectionDetailModel;
    onSelectConnectType: EventEmitter<ShapeFlowChartConnectionType>;
    onSelectTemplate: EventEmitter<any>;
    onSaveAsTemplate: EventEmitter<any>;
    onDeleteTemplate: EventEmitter<any>;
    onResetTemplate: EventEmitter<any>;
    onGetShapeActivity: EventEmitter<any>;
    onChangeShapeTarget: EventEmitter<any>;
    onChangeShapeAnchor: EventEmitter<any>;
    onReloadAnchorDocumentClick: EventEmitter<any>;
    onDeleteConnection: EventEmitter<ShapeFlowChartConnectionType>;
    onOpenActivity: EventEmitter<any>;
    onSelectConnectTypeForShape: EventEmitter<ShapeFlowChartConnectionDetail>;
    onSelectShapeConnectionAction: EventEmitter<ShapeConnectionActionEventModel>;
    onRemoveShapeConnectionItem: EventEmitter<RemoveShapeConnectionItemEventModel>;
    onUpdateShapeConnectionItem: EventEmitter<UpdateShapeConnectionItemEventModel>;
    onGetAnchorForDocument: EventEmitter<number>;
    onChangeDocumentAnchorForShape: EventEmitter<ChangeDocumentAnchorForShapeEventModel>;
    expandedPanel: boolean;
    connectionType: ShapeFlowChartConnectionType;
    selectedConnectionType: ShapeFlowChartConnectionType;
    selectedTarget: TargetTypeName;
    documentType: DataType;
    documentIcons: any;
    isLoadingDocumentAnchor: boolean;
    selectedCellView: any;
    selectedTabIndex: number;
    connectTypes: ConnectType[];
    preSelectedValue: number;
    selectedValue: number;
    flowchartId: string;
    targetValue: string;
    anchorValue: string;
    shapeId: string;
    preShapeId: string;
    disabledConnectionTab: boolean;
    shapeFlowChartConnectionType: typeof ShapeFlowChartConnectionType;
    flowchartViewMode: typeof FlowchartViewMode;
    relatedItemType: typeof RelatedItemType;
    anchorIdCtrl: UntypedFormControl;
    anchorIdFilterCtrl: UntypedFormControl;
    itemType: typeof DataType;
    currentChoseAnchorOfDocumentId: number;
    shapeTarget: typeof ShapeTargets;
    filteredAnchors: Observable<Anchor[]>;
    bpmnAddConnectionType: typeof BpmnAddConnectionType;
    constructor(translate: TranslateLibraryService, bpmnService: BpmnService, dialog: MatDialog, appIconService: QMSIconRegistryService, iconRegistry: MatIconRegistry, domSanitizer: DomSanitizer);
    onMessage(event: any): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnInit(): void;
    expandPanel(): void;
    isShowConnectType(): boolean;
    isSelectedView(): boolean;
    onTabChange($event: MatTabChangeEvent): void;
    checkCaseBpmnExpandPanel(): QMSCKEditorBpmnExpand;
    saveAsTemplate(): void;
    deleteTemplate(): void;
    mustSelectTemplateNotify(): void;
    selectTemplate(needConfirm: boolean): void;
    resetTemplate(): void;
    selectConnectType(value: ShapeFlowChartConnectionType): void;
    deleteConnection(value: ShapeFlowChartConnectionType): void;
    changeShapeTartget(event: any): void;
    changeShapeAnchor(event: any): void;
    reloadAnchorDocument(): void;
    showConfirmDialog(title: string, content: string, isMessage: boolean, isAdvance?: boolean, width?: string, height?: string, callback?: (result?: any) => void): void;
    openActivity(): void;
    isDisableToolbar(): boolean;
    ngOnDestroy(): void;
    selectConnectTypeForShape(typeDetail: ConnectType): void;
    openConnectionActionDropdown(event: Event): void;
    selectShapeDescriptionConnectionAction(actionType: ShapeConnectionActionEnum): void;
    selectShapeFieldConnectionAction(field: ConnectionField, actionType: ShapeConnectionActionEnum): void;
    removeRelatedItemForShape(item: ActivityRelatedItems, connectionType: ShapeFlowChartConnectionType): void;
    getAnchorForDocument(documentId: any): void;
    changeDocumentAnchorForShape(anchorId: number): void;
    removeRelatedLinkForShape(item: ShapeLink, connectionType: ShapeFlowChartConnectionType): void;
    onUpdateDataOther(event: any): void;
    private filterAnchors;
    isShowAddConnectionTab(): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<QMSBPMNComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<QMSBPMNComponent, "qms-bpmn", never, { "QMSBPMNConfig": { "alias": "QMSBPMNConfig"; "required": false; }; "editMode": { "alias": "editMode"; "required": false; }; "shapeModel": { "alias": "shapeModel"; "required": false; }; "targets": { "alias": "targets"; "required": false; }; "anchors": { "alias": "anchors"; "required": false; }; "shapeConnectionDetailModel": { "alias": "shapeConnectionDetailModel"; "required": false; }; }, { "onSelectConnectType": "onSelectConnectType"; "onSelectTemplate": "onSelectTemplate"; "onSaveAsTemplate": "onSaveAsTemplate"; "onDeleteTemplate": "onDeleteTemplate"; "onResetTemplate": "onResetTemplate"; "onGetShapeActivity": "onGetShapeActivity"; "onChangeShapeTarget": "onChangeShapeTarget"; "onChangeShapeAnchor": "onChangeShapeAnchor"; "onReloadAnchorDocumentClick": "onReloadAnchorDocumentClick"; "onDeleteConnection": "onDeleteConnection"; "onOpenActivity": "onOpenActivity"; "onSelectConnectTypeForShape": "onSelectConnectTypeForShape"; "onSelectShapeConnectionAction": "onSelectShapeConnectionAction"; "onRemoveShapeConnectionItem": "onRemoveShapeConnectionItem"; "onUpdateShapeConnectionItem": "onUpdateShapeConnectionItem"; "onGetAnchorForDocument": "onGetAnchorForDocument"; "onChangeDocumentAnchorForShape": "onChangeDocumentAnchorForShape"; }, never, never, false, never>;
}
export {};
