import { ChangeDetectorRef, TemplateRef, QueryList, AfterContentInit, OnDestroy } from '@angular/core';
import { UntypedFormGroup, UntypedFormBuilder, AbstractControl } from '@angular/forms';
import { TdDynamicFormsService, ITdDynamicElementConfig } from './services/dynamic-forms.service';
import { TdDynamicFormsErrorTemplateDirective } from './dynamic-element.component';
import * as i0 from "@angular/core";
export declare class TdDynamicFormsComponent implements AfterContentInit, OnDestroy {
    private _formBuilder;
    private _dynamicFormsService;
    private _changeDetectorRef;
    private _renderedElements;
    private _elements;
    private _templateMap;
    private _destroy$;
    private _destroyControl$;
    _errorTemplates: QueryList<TdDynamicFormsErrorTemplateDirective>;
    dynamicForm: UntypedFormGroup;
    /**
     * elements: ITdDynamicElementConfig[]
     * JS Object that will render the elements depending on its config.
     * [name] property is required.
     */
    set elements(elements: ITdDynamicElementConfig[]);
    get elements(): ITdDynamicElementConfig[];
    /**
     * Getter property for dynamic [FormGroup].
     */
    get form(): UntypedFormGroup;
    /**
     * Getter property for [valid] of dynamic [FormGroup].
     */
    get valid(): boolean;
    /**
     * Getter property for [value] of dynamic [FormGroup].
     */
    get value(): any;
    /**
     * Getter property for [errors] of dynamic [FormGroup].
     */
    get errors(): {
        [name: string]: any;
    };
    /**
     * Getter property for [controls] of dynamic [FormGroup].
     */
    get controls(): {
        [key: string]: AbstractControl;
    };
    constructor(_formBuilder: UntypedFormBuilder, _dynamicFormsService: TdDynamicFormsService, _changeDetectorRef: ChangeDetectorRef);
    ngAfterContentInit(): void;
    ngOnDestroy(): void;
    /**
     * Refreshes the form and rerenders all validator/element modifications.
     */
    refresh(): void;
    /**
     * Getter method for error template references
     */
    getErrorTemplateRef(name: string): TemplateRef<any> | undefined;
    /**
     * Loads error templates and sets them in a map for faster access.
     */
    private _updateErrorTemplates;
    private _rerenderElements;
    private _clearRemovedElements;
    private _subscribeToControlStatusChanges;
    static ɵfac: i0.ɵɵFactoryDeclaration<TdDynamicFormsComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TdDynamicFormsComponent, "td-dynamic-forms", never, { "elements": { "alias": "elements"; "required": false; }; }, {}, ["_errorTemplates"], ["*"], true, never>;
}
