import { FormArray, FormBuilder, FormControl, FormGroup } from '@angular/forms';
import { FormField } from '../models/form-constructor.model';
import { FormFieldType } from '../constants/ui-constants';
import { Observable } from 'rxjs';
export declare class UiFormService {
    private fb;
    private fieldsToCreate;
    private fieldsToCreateSubject;
    constructor(fb: FormBuilder);
    createFormGroup(addedFields: FormField[]): FormGroup;
    generateFormGroupConfig(addedFields: FormField[]): Record<string, FormGroup | FormArray | FormControl>;
    createControlForField(field: FormField): FormGroup | FormArray | FormControl;
    createFormGroupForObject(objectFields: FormField[]): FormGroup;
    createControl(defaultValue?: string): FormControl;
    createFormArray(): FormArray;
    addControlToFormArray(formArray: FormArray, arrayName: string, nestedArrayConfig?: Record<string, FormControl | FormGroup | FormArray | string>): void;
    removeControlFromFormArray(formArray: FormArray, index: number): void;
    createGroupForArray(arrayName: string, nestedArrayConfig?: Record<string, FormControl | FormGroup | FormArray | string>): FormGroup;
    saveFieldProperties(form: FormGroup, fieldType: string): FormField;
    generateUniqueId(): string;
    setFieldsToCreate(fieldType: FormFieldType): void;
    getFieldsToCreate(): Observable<FormField[]>;
    getRequiredFields(fieldType: string): string[];
}
