import { OnInit } from '@angular/core';
import { AbstractFieldWriteComponent } from '../base-field/abstract-field-write.component';
import { CaseField } from '../../../domain/definition/case-field.model';
import { AbstractControl, FormArray, FormControl, FormGroup } from '@angular/forms';
import { FormValidatorsService } from '../../../services/form/form-validators.service';
import { MatDialog } from '@angular/material/dialog';
import { ScrollToService } from '@nicky-lenaers/ngx-scroll-to';
import { Profile } from '../../../domain/profile';
import { ProfileNotifier } from '../../../services';
export declare class WriteCollectionFieldComponent extends AbstractFieldWriteComponent implements OnInit {
    private formValidatorsService;
    private dialog;
    private scrollToService;
    private profileNotifier;
    caseFields: CaseField[];
    formGroup: FormGroup;
    formArray: FormArray;
    profile: Profile;
    private items;
    constructor(formValidatorsService: FormValidatorsService, dialog: MatDialog, scrollToService: ScrollToService, profileNotifier: ProfileNotifier);
    ngOnInit(): void;
    buildCaseField(item: any, index: number): CaseField;
    private newCaseField;
    buildControlRegistrer(id: string, index: number): (control: FormControl) => AbstractControl;
    buildIdPrefix(index: number): string;
    addItem(doScroll: boolean): void;
    private focusLastItem;
    removeItem(index: number): void;
    itemLabel(index: number): string;
    isNotAuthorisedToCreate(): boolean;
    hasCreateAccess(role: any): boolean;
    isNotAuthorisedToUpdate(index: number): boolean;
    hasUpdateAccess(role: any): boolean;
    isNotAuthorisedToDelete(index: number): boolean;
    hasDeleteAccess(role: any): boolean;
    openModal(i: number): void;
}
