import { AfterViewInit, ChangeDetectorRef, ElementRef, OnChanges, OnDestroy, QueryList, Renderer2, SimpleChanges, ViewContainerRef } from '@angular/core';
import { FormBuilder, AbstractControl } from '@angular/forms';
import { DomSanitizer } from '@angular/platform-browser';
import { BaseFormArrayComponent } from '../../../../shared/base/base-form-array.component';
import { FormSubmitBroadcastService } from '../../../../core/services/form-submit-broadcast.service';
import { ComponentFactoryService } from '../../../../core/services/component-factory.service';
import { JoiValidatorFactoryService } from '../../../../features/validator/services/joi-validator-factory.service';
import * as i0 from "@angular/core";
export declare class ObjArrayComponent extends BaseFormArrayComponent implements OnChanges, OnDestroy, AfterViewInit {
    protected fb: FormBuilder;
    protected submitBroadcastService: FormSubmitBroadcastService;
    protected cdr: ChangeDetectorRef;
    private renderer;
    private el;
    private componentFactoryService;
    private joiValidatorFactoryService;
    validationSchema: any;
    viewContainerRefs: QueryList<ViewContainerRef>;
    constructor(sanitizer: DomSanitizer, fb: FormBuilder, submitBroadcastService: FormSubmitBroadcastService, cdr: ChangeDetectorRef, renderer: Renderer2, el: ElementRef, componentFactoryService: ComponentFactoryService, joiValidatorFactoryService: JoiValidatorFactoryService);
    ngOnChanges(changes: SimpleChanges): void;
    ngAfterViewInit(): void;
    addControl(defaultValues?: any, loadComponent?: boolean): void;
    removeControl(index: number): void;
    getControls(): AbstractControl[];
    trackByIndex(index: number): number;
    private loadInitialComponents;
    private loadComponentGroup;
    private setupEventListeners;
    private handleRemoveClick;
    private updateAddButtonState;
    static ɵfac: i0.ɵɵFactoryDeclaration<ObjArrayComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ObjArrayComponent, "nju-obj-array", never, { "validationSchema": { "alias": "validationSchema"; "required": false; }; }, {}, never, never, false, never>;
}
