import { FormBuilder, FormGroup } from '@angular/forms';
import * as i0 from "@angular/core";
export declare const EMAIL_PATTERN: RegExp;
export declare const URL_PATTERN: RegExp;
export type FieldGroupType = 'object' | 'array';
export interface FieldValidations {
    groupType?: string;
    required?: boolean;
    disabled?: boolean;
    min?: number;
    max?: number;
    minLength?: number;
    maxLength?: number;
    email?: boolean;
    pattern?: RegExp | string;
    emailPattern?: boolean | RegExp;
    urlPattern?: boolean | RegExp;
    customValidation?: () => boolean;
    defaultValue?: any;
    valueType?: 'array' | 'object' | 'string' | 'number' | 'boolean';
    arrayValueType?: 'string' | 'number';
}
export type FormFieldDefinition = FieldValidations | {
    [key: string]: FieldValidations | string;
    groupType: string;
};
export interface FormField extends FieldValidations {
    name: string;
}
export type FormFields = {
    [key: string]: FormFieldDefinition;
};
export declare class FormBuilderHelper {
    private formBuilder;
    constructor(formBuilder: FormBuilder);
    buildFormGroup(fields: FormFields, values?: {
        [key: string]: any;
    }): FormGroup;
    /**
     * Retronar un arreglo de validadores
     *
     * @param field
     */
    getValidators(field: FieldValidations): any[];
    private buildFormArray;
    private getFormGroupFieldDefinition;
    static ɵfac: i0.ɵɵFactoryDeclaration<FormBuilderHelper, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<FormBuilderHelper>;
}
