import { ChangeDetectorRef } from '@angular/core';
import { FormGroup, FormBuilder, ValidatorFn, AbstractControl } from '@angular/forms';
import { BehaviorSubject } from 'rxjs';
import { FormControlConfig } from '../public-api';
import * as i0 from "@angular/core";
export declare class BaseFormsComponent {
    protected fb: FormBuilder;
    protected cdr: ChangeDetectorRef;
    formName: import("@angular/core").InputSignal<string>;
    controls: import("@angular/core").InputSignal<FormControlConfig[]>;
    formSubmit: import("@angular/core").OutputEmitterRef<Record<string, any>>;
    form: FormGroup;
    protected formChanges$: BehaviorSubject<boolean>;
    constructor(fb: FormBuilder, cdr: ChangeDetectorRef);
    ngOnInit(): void;
    protected initializeForm(): void;
    protected getValidators(control: FormControlConfig): ValidatorFn[];
    protected updateValidators(control: AbstractControl, value: any): void;
    protected shouldRequireValidation(value: any): boolean;
    onSubmit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<BaseFormsComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<BaseFormsComponent, "base-forms", never, { "formName": { "alias": "formName"; "required": true; "isSignal": true; }; "controls": { "alias": "controls"; "required": true; "isSignal": true; }; }, { "formSubmit": "formSubmit"; }, never, never, true, never>;
}
