import { FormBuilder, FormGroup, ValidatorFn, AsyncValidatorFn } from '@angular/forms';
import * as i0 from "@angular/core";
/**
 * @author Jean Paul <jeanpaulwebb@gmail.com>
 * @class FormServiceDynamic
 * @date 17/08/2023
 */
export declare class FormServiceDynamic {
    private formBuilder;
    constructor(formBuilder: FormBuilder);
    createForm<T extends Record<string, any>>(model: T, options?: {
        [field: string]: FieldConfig;
    }): FormGroup;
    private createControl;
    private conditionallyRequiredValidator;
    private isConditionallyRequired;
    private normalizeValidations;
    private normalizeAsyncValidations;
    static ɵfac: i0.ɵɵFactoryDeclaration<FormServiceDynamic, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<FormServiceDynamic>;
}
export interface FieldConfig {
    value?: any;
    validations?: {
        [key: string]: any;
    };
    asyncValidations?: {
        [key: string]: any;
    };
    errorMessages?: {
        [error: string]: string;
    };
    enabled?: boolean;
    customValidation?: ValidatorFn;
    asyncCustomValidation?: AsyncValidatorFn;
    requiredIf?: {
        condition: () => boolean;
    };
}
