import { ChangeDetectorRef, OnChanges, SimpleChanges } from '@angular/core';
import { FormGroup, FormControl, AbstractControl } from '@angular/forms';
import { SchemaModel } from './Models/Schema';
import { NgxIsoService } from './ngx-iso-form.service';
import { IsoForm } from './Models/IsoForm';
import * as i0 from "@angular/core";
export declare class NgxIsoFormComponent implements OnChanges {
    private service;
    private changeDetection;
    form: IsoForm;
    schema: SchemaModel;
    excludes: string[];
    protected _form: FormGroup;
    private _isFormInitiate;
    private _ngModel;
    constructor(service: NgxIsoService, changeDetection: ChangeDetectorRef);
    ngOnChanges(changes: SimpleChanges): void;
    get model(): any;
    protected get getFormModel(): any[];
    get invalid(): boolean;
    private initiateForm;
    private structuredClone;
    private initiateFormModel;
    protected onChoiceSelectionChange(id: string, formElement: any, node: SchemaModel): void;
    protected maxOccurs(maxOccurs: string): boolean;
    protected expand(minOccurs: string): boolean;
    protected addSection($event: Event, node: SchemaModel, parentNode: SchemaModel, parentFormEle: FormGroup): void;
    protected removeSection($event: Event, parentNode: SchemaModel, parentFormEle: FormGroup, index: number): void;
    protected addNewControl($event: Event, node: SchemaModel, parentNode: SchemaModel, parentFormEle: FormGroup): void;
    protected removeNewControl($event: Event, parentNode: SchemaModel, parentFormEle: FormGroup, index: number): void;
    protected isArray(myKey: Object | Array<any>): boolean;
    protected isEmpty(formElement: FormGroup): boolean;
    protected getElement(formElement: FormGroup, element: any): AbstractControl<any, any> | undefined;
    protected getFormControl(node: SchemaModel): FormControl;
    protected getChoiceFormControl(choiceKey: string): FormControl<any>;
    static ɵfac: i0.ɵɵFactoryDeclaration<NgxIsoFormComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NgxIsoFormComponent, "ngx-iso-form", never, { "form": { "alias": "form"; "required": true; }; "schema": { "alias": "schema"; "required": true; }; "excludes": { "alias": "excludes"; "required": false; }; }, {}, never, never, false, never>;
}
