import { ViewContainerRef, OnInit, EventEmitter, NgZone } from '@angular/core';
import { DialogRef } from 'angular2-modal';
import { TermStore, Shared } from "../../../models";
import { ContextMenuItem } from "./TreePicker";
import { LocalizationService } from "../services/LocalizationService";
import { PortalTermStoreService } from "../services/PortalTermStoreService";
import { BaseDialogComponent, BaseDialogModel, DialogService } from "../services/DialogService";
export interface ITermFormScope {
    termSetId: string;
    term: TermStore.ITerm;
    saveTerm: () => void;
    close: () => void;
    isSaving: boolean;
}
export interface ITermsTreePickerScope {
    onNodeSelected: () => (sender: Shared.ITreePickerNode) => void;
    termSetId: string;
    termSet: TermStore.ITermSet;
    isEnterpriseKeyword: boolean;
    showContextMenu: boolean;
    isLoading: boolean;
    onDblClickNode: () => (sender: Shared.ITreePickerNode) => void;
    nodes: Array<Shared.ITreePickerNode>;
    selectedNode: Shared.ITreePickerNode;
    isShowCreateTermLink: boolean;
    selectNode: (sender: Shared.ITreePickerNode) => void;
    dblClickNode: (sender: Shared.ITreePickerNode) => void;
    selectingNode: (node: Shared.ITreePickerNode, callBack: (options: any) => void) => void;
    contextMenuActions: Array<ContextMenuItem>;
    createTerm: () => void;
}
export declare class TermsTreePicker implements OnInit {
    private termStoreService;
    private localizationService;
    dialogService: DialogService;
    private zoneService;
    private viewContainer;
    termSetId: string;
    termSet: TermStore.ITermSet;
    isEnterpriseKeyword: boolean;
    onNodeSelected: Function;
    showContextMenu: boolean;
    isLoading: boolean;
    onDblClickNode: Function;
    termSetChange: EventEmitter<TermStore.ITermSet>;
    static templateGuid: string;
    scope: ITermsTreePickerScope;
    constructor(termStoreService: PortalTermStoreService, localizationService: LocalizationService, dialogService: DialogService, zoneService: NgZone, viewContainer: ViewContainerRef);
    ngOnInit(): void;
    link: () => void;
    private loadTermTree;
    private setSelectedNode;
    private dblClickNode;
    private setupContextMenuActions;
    private createTerm;
    private addNodeToParent;
    private addRootNode;
    private showCreateTermDialog;
    private mapToTreePickerNode;
}
export declare class TermForm extends BaseDialogComponent<BaseDialogModel<any>> implements OnInit {
    dialog: DialogRef<BaseDialogModel<any>>;
    private termStoreService;
    static templateGuid: string;
    scope: ITermFormScope;
    constructor(dialog: DialogRef<BaseDialogModel<any>>, termStoreService: PortalTermStoreService);
    ngOnInit(): void;
    private init;
    private cloneTerm;
    private saveTerm;
    private createTermCallback;
}
