import { Observable } from 'rxjs';
import { NgModel } from '@angular/forms';
import { InputFormsConfig } from '../input-forms-config';
import { AsyncValidatorArray, ValidationResult, ValidatorArray } from './validate';
import { ValueAccessorBase } from './value-accessor-base';
import * as i0 from "@angular/core";
export declare abstract class ElementBase<T> extends ValueAccessorBase<T> {
    private validators;
    private asyncValidators;
    config: InputFormsConfig;
    label: string;
    disabled: boolean;
    showValidations: boolean;
    autocomplete: string;
    help: string;
    description: string;
    protected abstract model: NgModel;
    constructor(validators: ValidatorArray, asyncValidators: AsyncValidatorArray, config: InputFormsConfig);
    validate(): Observable<ValidationResult>;
    get invalid(): Observable<boolean>;
    get failures(): Observable<Array<string>>;
    get touched(): boolean;
    get invalidPattern(): boolean;
    get invalidMaxValue(): boolean;
    get invalidMinValue(): boolean;
    get isRequired(): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<ElementBase<any>, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<ElementBase<any>, never, never, { "label": "label"; "disabled": "disabled"; "showValidations": "showValidations"; "autocomplete": "autocomplete"; "help": "help"; "description": "description"; }, {}, never, never, false, never>;
}
