import * as React from 'react';
import { IDropdownOption } from 'office-ui-fabric-react/lib/Dropdown';
import { IMovableOptionsListElement } from '../MovableOptionsList';
import './TemplateAdminForm.css';
import { ITemplateAdminFormProps } from './TemplateAdminForm.types';
export interface IInitialState {
    name: string;
    main: any[];
    properties: any[];
    displayProperties: IMovableOptionsListElement[];
    movableMainValues: Map<number, IMovableOptionsListElement[]>;
    fieldProperties: IDropdownOption[];
    operatorsProperties: IDropdownOption[];
}
export interface ITemplateAdminFormState {
    id: string;
    name: string;
    main: any[];
    properties: any[];
    propertiesTemp: any[];
    showSettingsPanel: boolean[];
    showMovablePanel: boolean[];
    displayPropertiesPanel: boolean;
    menusPanel: boolean;
    addPropertiesPanel: boolean;
    settingsOperators: Map<number, boolean[]>;
    settingsOperatorsPropertyType: Map<number, any>;
    settingsOperatorsSelectionType: string[];
    displayProperties: IMovableOptionsListElement[];
    movableMainValues: Map<number, IMovableOptionsListElement[]>;
    error: any;
    hideDeleteDialogs: boolean[];
    hideResetDialog: boolean;
    previewItems: any[];
    previewLabel: string | undefined;
    fieldProperties: IDropdownOption[];
    operatorsProperties: IDropdownOption[];
}
export declare class TemplateAdminFormBase extends React.PureComponent<ITemplateAdminFormProps, ITemplateAdminFormState> {
    static defaultProps: {
        useName: boolean;
        labelTitleNew: string;
        labelTitleEdit: string;
        labelFormTemplateName: string;
        labelDialogTitleDelete: string;
        labelDialogSubtextPrefixDelete: string;
        labelDialogSubtextSuffixDelete: string;
        labelDialogBtnDelete: string;
        labelDialogBtnCancel: string;
        labelPanelSettingsPropertyTitle: string;
        labelPanelSettingsOperatorsTitle: string;
        labelPanelSettingsBtnUseAll: string;
        labelPanelSettingsBtnUseSelected: string;
        labelPanelSettingsEquals: string;
        labelPanelSettingsStartsWith: string;
        labelPanelSettingsContains: string;
        labelPanelSettingsIsEmpty: string;
        labelPanelSettingsGreaterThan: string;
        labelPanelSettingsLessThan: string;
        labelPanelSettingsWithin: string;
        labelPanelSettingsIncludes: string;
        labelDialogTitleReset: string;
        labelDialogSubtextReset: string;
        labelDialogBtnReset: string;
        labelPanelDisplayPropertiesTitle: string;
        labelPanelAddPropertiesTitle: string;
        labelPanelMenusTitle: string;
        labelPanelAddBtnAdd: string;
        labelPanelAddBtnCancel: string;
        labelIconOperatorDelete: string;
        labelIconOperatorSetting: string;
        labelIconOperatorUp: string;
        labelIconOperatorDown: string;
        labelCmdBarBtnSave: string;
        labelCmdBarBtnEdit: string;
        labelCmdBarBtnCancel: string;
        labelCmdBarFarBtnAdd: string;
        labelCmdBarFarBtnReset: string;
        labelCmdBarFarBtnResults: string;
        labelMovListAvailable: string;
        labelMovListSelected: string;
        labelFormFieldset: string;
    };
    private mode;
    private initialState;
    private result;
    private emptyState;
    private selection;
    private menusSelection;
    private url;
    constructor(props: ITemplateAdminFormProps);
    componentDidMount(): void;
    componentDidUpdate(prevProps: ITemplateAdminFormProps): void;
    private init;
    render(): JSX.Element;
    private componentDidMountInEditMode;
    private componentDidMountInNewMode;
    private loadFieldProperties;
    private loadOperatorProperties;
    private getSafeValue;
    private getSafeDateValue;
    private getSafeTextToDate;
    private removeProperty;
    private movePropertyUp;
    private movePropertyDown;
    private moveProperty;
    private onDismissMovablePanel;
    private onShowMovablePanel;
    private onShowSettingsPanel;
    private onDismissSettingsPanel;
    private onChangePropertyOperation;
    private onChangeSettingsOperators;
    private isSettingsOperatorChecked;
    private onChangeSettingsOperatorType;
    private onShowDisplayPropertiesPanel;
    private onDismissDisplayPropertiesPanel;
    private onShowAddPropertiesPanel;
    private onShowMenusPanel;
    private handleGetPropertiesResponse;
    private handleGetMenusResponse;
    private onDisplayPropertiesSelectionChanged;
    private onMenusSelectionChanged;
    private populatePreviewItems;
    private isNull;
    private getPropertiesUrl;
    private getEncodedMainValues;
    private onAddProperties;
    private getMenusUrl;
    private reset;
    private setMainSingleValue;
    private setPropertiesSingleValue;
    private handleMainTextInput;
    private handlePropertiesTextInput;
    private handleMainDateInput;
    private handlePropertiesDateInput;
    private onMainChangeValues;
    private onPropertiesChangeValues;
    private onMainChangeValuesPickup;
    private onPropertiesChangeValuesPickup;
    private onChangePropertyType;
    private getMainRowFromId;
    private getPropertiesRowFromId;
    private resetState;
    private resetResultMainValues;
    private setDisplayProperties;
    private setResultPropertiesValues;
    private getItemValues;
    private getOperationValues;
    private showDeleteDialog;
    private closeDeleteDialog;
    private showResetDialog;
    private closeResetDialog;
    private onChangeParentPickupField;
    private onChangeParentField;
    private updateChildMainField;
    private getOperatorActionItems;
    private getFormCommandBarItems;
    private getFormCommandBarFarItems;
    private onBuildPropertiesColumns;
    private onBuildMenusColumns;
    private getFieldTypeForProperty;
    private getOperationsForProperty;
    private getDynamicTranslation;
    private onSubmit;
    private logResult;
}
