import { OnInit, AfterViewInit, OnDestroy, EventEmitter, OnChanges, SimpleChanges, ChangeDetectorRef } from '@angular/core';
import { UntypedFormBuilder } from '@angular/forms';
import { InjectableDialogComponentInterface } from '../../../../common/modules/inject-content/models/injectable-dialog-component.interface';
import { SmzControlType } from '../../models/control-types';
import { SmzFormsResponse, SmzForm } from '../../models/smz-forms';
import { SmzFormsManagerService } from '../../services/smz-forms-manager.service';
import { SmzFormViewdata } from '../../models/form-viewdata';
import { SmzFormsRepositoryService } from '../../services/smz-forms-repository.service';
import * as i0 from "@angular/core";
export declare class FormGroupComponent implements OnInit, AfterViewInit, OnChanges, OnDestroy, InjectableDialogComponentInterface<SmzFormsResponse<any>> {
    fb: UntypedFormBuilder;
    private cdf;
    manager: SmzFormsManagerService;
    repository: SmzFormsRepositoryService;
    isComponentActive: boolean;
    viewdata: SmzFormViewdata;
    get isValid(): boolean;
    getData<T>(): SmzFormsResponse<T>;
    config: SmzForm<any>;
    statusChanges: EventEmitter<SmzFormsResponse<any>>;
    changed: EventEmitter<SmzFormsResponse<any>>;
    onChange: EventEmitter<SmzFormsResponse<any>>;
    submit: EventEmitter<SmzFormsResponse<any>>;
    private isFirstUpdate;
    private emitChanges;
    controlTypes: typeof SmzControlType;
    isInitialized: boolean;
    configHasErrors: boolean;
    constructor(fb: UntypedFormBuilder, cdf: ChangeDetectorRef, manager: SmzFormsManagerService, repository: SmzFormsRepositoryService);
    ngOnInit(): void;
    init(): void;
    ngOnChanges(changes: SimpleChanges): void;
    private callVisibilityFunctions;
    linkInputControls(): void;
    private hasUndefinedPropertyName;
    private hasDuplicateNames;
    /** Limpa todos os valores default */
    clearFormValues(): void;
    /** Restaura últimos dados salvos */
    undoChanges(): void;
    /** Atualiza o state do formulário com seus valores atuais */
    resetState(): void;
    /** Atualiza o hasChanges */
    updateHasChanges(): void;
    ngAfterViewInit(): void;
    private checkCustomFunctions;
    private fixRadioBug;
    onEnter(event: any): void;
    onSubmit(event: any): void;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<FormGroupComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<FormGroupComponent, "smz-form-group", never, { "config": { "alias": "config"; "required": false; }; }, { "statusChanges": "statusChanges"; "changed": "changed"; "onChange": "onChange"; "submit": "submit"; }, never, never, false, never>;
}
