import { EventEmitter, OnInit, SimpleChanges } from '@angular/core';
import { FormGroup } from '@angular/forms';
import { CdkDragDrop } from '@angular/cdk/drag-drop';
import { ConditionalLogicBlock, FormField, FormOptionsFull } from '../../models/form-constructor.model';
import { FieldTypesNames, FormFieldType } from '../../constants/ui-constants';
import { UiFormService } from '../../services/ui-form.service';
import { FormDataService } from '../../services/form-data.service';
import { ConfirmationService } from '../../services/confirmation.service';
import { LocaleService } from '../../services/locale.service';
export declare class UIComponent implements OnInit {
    private uiFormService;
    private formDataService;
    private confirmationService;
    private localeService;
    enableGeneralFields: boolean;
    enableConditionalLogicBlocks: boolean;
    isSurvey: boolean;
    incomingFormData: FormOptionsFull;
    enableSetValidationOptions: boolean;
    locale: Record<string, string>;
    saveClicked: EventEmitter<FormOptionsFull>;
    formFieldType: typeof FormFieldType;
    dynamicForm: FormGroup;
    generalForm: FormGroup;
    formData: FormOptionsFull;
    addedFields: FormField[];
    generalFields: FormField[];
    conditionalLogicBlocks: ConditionalLogicBlock[];
    fieldLabels: FieldTypesNames;
    currentStep: number;
    usedFieldTypes: FormFieldType[];
    isSidebarOpen: boolean;
    isFieldsInsertingOpen: boolean;
    isFieldPropertiesOpen: boolean;
    isGeneral: boolean;
    fieldToEdit: FormField;
    needContactDefaultValue: string | undefined;
    hasFeedBackText: boolean;
    editedFieldId: string | null;
    constructor(uiFormService: UiFormService, formDataService: FormDataService, confirmationService: ConfirmationService, localeService: LocaleService);
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    createForm(): void;
    removeField(field: FormField, isGeneral: boolean): void;
    copyField(field: FormField, isGeneral: boolean): void;
    insertConditionalLogicBlock(): void;
    removeConditionalLogicBlock(index: number): void;
    goToStep(step: number): void;
    goToNextStep(): void;
    goToPreviousStep(): void;
    saveCurrentStepData(): void;
    updateSpecialFieldStates(): void;
    updateFeedBackTextFields(): void;
    findFieldInSteps(fieldType: string): FormField | undefined;
    updateRequiredFields(value: string): void;
    insertFormData(): void;
    saveForm(): void;
    preventDefault(event: Event): void;
    onDrop(event: CdkDragDrop<FormField[]>): void;
    copyStep(index: number): void;
    moveStep(index: number, direction: 'next' | 'prev'): void;
    deleteStepConfirmation(index: number): void;
    deleteStep(index: number): void;
    updateStep(): void;
    isFieldUnique(fieldType: FormFieldType): boolean;
    toggleSidebar(): void;
    toggleFieldsInsertingSidebar(isGeneral?: boolean): void;
    toggleFieldPropertiesSidebar(field: FormField, isGeneral: boolean): void;
    onPropertiesSave(selectedField: FormField): void;
    onPropertiesSaveAfterEdit(updatedField: FormField): void;
    addUsedFieldType(type: FormFieldType): void;
    initializeUsedFieldTypes(fields: FormField[]): void;
}
