import { AfterViewInit, OnInit, TemplateRef, ViewContainerRef } from '@angular/core';
import { FormGroup, ValidationErrors } from '@angular/forms';
import { GrcmDataForm } from './interfaces/data-form.interface';
import { ResponseGrcmForm } from './interfaces/response-form.interface';
import { GrcmDataFormChange } from './interfaces/form-change.interface';
import { GenericObject } from './interfaces/generic-object.interface';
import { GrcmFormComponentType } from './interfaces/form-component-type.interface';
import * as i0 from "@angular/core";
export declare class GrcmFormComponent implements OnInit, AfterViewInit {
    grcmControls: import("@angular/core").Signal<readonly ViewContainerRef[]>;
    private readonly _destroyRef;
    private readonly _formBuilder;
    data: import("@angular/core").InputSignal<GrcmDataForm>;
    additionalClasses: import("@angular/core").Signal<string | string[]>;
    buildForm: import("@angular/core").OutputEmitterRef<FormGroup<any> | null>;
    formSubmit: import("@angular/core").OutputEmitterRef<ResponseGrcmForm>;
    formChange: import("@angular/core").OutputEmitterRef<GrcmDataFormChange>;
    private _form;
    readonly form: import("@angular/core").Signal<FormGroup<any> | null>;
    protected formKeys: string[];
    readonly templates: import("@angular/core").InputSignal<GenericObject<TemplateRef<any>>>;
    readonly identifier: import("@angular/core").Signal<string>;
    readonly formControlNames: import("@angular/core").Signal<string[]>;
    ngOnInit(): void;
    ngAfterViewInit(): void;
    private initialize;
    private initForm;
    addControl(name: string, control: GrcmFormComponentType<any, any>): void;
    private initSubscriptionsForControlValueChanges;
    getErrors(errors: ValidationErrors | null): string[];
    onSubmit(event?: SubmitEvent | null): void;
    private markAsTouched;
    protected getDataForTemplateContext(formControlName?: string | null): GenericObject;
    static ɵfac: i0.ɵɵFactoryDeclaration<GrcmFormComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<GrcmFormComponent, "lib-grcm-form", never, { "data": { "alias": "data"; "required": true; "isSignal": true; }; "templates": { "alias": "templates"; "required": false; "isSignal": true; }; }, { "buildForm": "buildForm"; "formSubmit": "formSubmit"; "formChange": "formChange"; }, never, never, true, never>;
}
