import { EventEmitter, Injector, OnDestroy } from '@angular/core';
import { UntypedFormGroup, ValidatorFn } from '@angular/forms';
import { ConfigInputComponent, DataSourceInput, DatasourceService, HttpService, InputFieldAppearance, OutputCallback } from 'cocori-ng/src/feature-core';
import { Observable, Subject } from 'rxjs';
import * as i0 from "@angular/core";
export declare abstract class ExtendInputsComponent implements OnDestroy {
    formGroup: UntypedFormGroup;
    nameControl: string;
    nameLabel: string;
    color: string; /** à factoriser dans le helper pour la construction de form */
    /** méthode appelée lorsque que le contrôle a été ajouté au formulaire avec en paramètre le nom du contrôle créé */
    callback: EventEmitter<string>;
    readonly destroy$: Subject<unknown>;
    dataSource$: Observable<any>;
    dataSourceNameProperty: string;
    inRelationWith: string;
    validators: ValidatorFn[];
    appearance: InputFieldAppearance;
    httpService: HttpService;
    datasourceService: DatasourceService;
    styleCompact: boolean;
    maxlength: number;
    icon: string;
    callbackComponent: OutputCallback;
    constructor(injector: Injector);
    ngOnDestroy(): void;
    configInput(config: ConfigInputComponent): void;
    emitEvent(): void;
    clearValue(event?: any): void;
    addControlForm(): void;
    addArrayForm(): void;
    private controlAlreadyAdded;
    loadDataSource(configDataSource: DataSourceInput): Observable<any>;
    private inRelatioNWith;
    private isControlRequired;
    static ɵfac: i0.ɵɵFactoryDeclaration<ExtendInputsComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ExtendInputsComponent, "extend-inputs", never, { "formGroup": "formGroup"; "nameControl": "nameControl"; "nameLabel": "nameLabel"; "color": "color"; }, { "callback": "callback"; }, never, never, false>;
}
