import { Injector, OnChanges, OnInit, SimpleChanges } from '@angular/core';
import { ControlContainer, FormArray, ValidatorFn } from '@angular/forms';
import { BaseResourceFormComponent } from 'ng-resource-form-util';
import { StringMap, ValidateRowDuplicateService } from '../../core/public-api';
import { TranslateService } from '../../translate/public-api';
import * as i0 from "@angular/core";
export declare class StringArrayFormTableComponent extends BaseResourceFormComponent<string[], string[], FormArray> implements OnInit, OnChanges {
    injector: Injector;
    readonly controlContainer: ControlContainer;
    private readonly rowDup;
    private readonly translate;
    multiLineValue: boolean;
    resourceName: string;
    resourceNameTranslated: string;
    placeholder: string;
    validators: ValidatorFn[];
    enableDuplicateCheck: boolean;
    set errorMapper(errorMapper: StringMap);
    get errorMapper(): StringMap;
    maxLines: number;
    maxLinesTooltip: string;
    minLines: number;
    readonlyItems: Array<string | RegExp>;
    readonlyTooltip: string;
    private _errorMapper;
    private duplicateValidator;
    constructor(injector: Injector, controlContainer: ControlContainer, rowDup: ValidateRowDuplicateService, translate: TranslateService);
    get length(): number;
    ngOnChanges({ validators, enableDuplicateCheck }: SimpleChanges): void;
    createForm(): FormArray<import("@angular/forms").FormControl<unknown>>;
    adaptResourceModel(resource: string[]): string[];
    getDefaultFormModel(): string[];
    add(index?: number): void;
    remove(index: number): void;
    getOnFormArrayResizeFn(): () => import("@angular/forms").FormControl<string>;
    isItemReadonly(index: number): boolean;
    private isReadonly;
    static ɵfac: i0.ɵɵFactoryDeclaration<StringArrayFormTableComponent, [null, { optional: true; }, null, null]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<StringArrayFormTableComponent, "acl-string-array-form-table", never, { "multiLineValue": { "alias": "multiLineValue"; "required": false; }; "resourceName": { "alias": "resourceName"; "required": false; }; "resourceNameTranslated": { "alias": "resourceNameTranslated"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "validators": { "alias": "validators"; "required": false; }; "enableDuplicateCheck": { "alias": "enableDuplicateCheck"; "required": false; }; "errorMapper": { "alias": "errorMapper"; "required": false; }; "maxLines": { "alias": "maxLines"; "required": false; }; "maxLinesTooltip": { "alias": "maxLinesTooltip"; "required": false; }; "minLines": { "alias": "minLines"; "required": false; }; "readonlyItems": { "alias": "readonlyItems"; "required": false; }; "readonlyTooltip": { "alias": "readonlyTooltip"; "required": false; }; }, {}, never, never, true, never>;
}
