import { ChangeDetectorRef, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';
import { FormBuilder } from '@angular/forms';
import { BaseFormArrayComponent } from '../../../../shared/base/base-form-array.component';
import { DataPopulationRuleService } from '../../../../features/data-population/services/data-population-rule.service';
import { FormSubmitBroadcastService } from '../../../../core/services/form-submit-broadcast.service';
import { DomSanitizer } from '@angular/platform-browser';
import { PaginationHelper } from '../../../../shared/utilities/pagination-helper';
import { DprOptionModel } from '../../../../features/data-population/models/dpr-option.model';
import * as i0 from "@angular/core";
type ValidationTypeMap = Record<'string' | 'number' | 'integer' | 'boolean' | 'date', any>;
type ArrayItemType<S extends keyof ValidationTypeMap> = ValidationTypeMap[S];
export declare class SelectArrayComponent<S extends keyof ValidationTypeMap = 'string', T = ArrayItemType<S>> extends BaseFormArrayComponent implements OnChanges, OnDestroy {
    protected fb: FormBuilder;
    private dpService;
    protected submitBroadcastService: FormSubmitBroadcastService;
    protected cdr: ChangeDetectorRef;
    validationSchema: any;
    selectedItems: T[];
    /** Pagination helper for dynamic options */
    pager: PaginationHelper<DprOptionModel>;
    constructor(sanitizer: DomSanitizer, fb: FormBuilder, dpService: DataPopulationRuleService, submitBroadcastService: FormSubmitBroadcastService, cdr: ChangeDetectorRef);
    /** Re-initialize on config change: styles, pagination, defaults */
    ngOnChanges(changes: SimpleChanges): void;
    handleSelection(itemValue: T): void;
    /** Cast input to generic type */
    castValue(value: any): T;
    static ɵfac: i0.ɵɵFactoryDeclaration<SelectArrayComponent<any, any>, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SelectArrayComponent<any, any>, "nju-select-array", never, { "validationSchema": { "alias": "validationSchema"; "required": false; }; }, {}, never, never, false, never>;
}
export {};
