import { NgModel } from '@angular/forms';
import { Observable } from 'rxjs';
import { ValueAccessorBase } from './value-accessor';
import { AsyncValidatorArray, ValidatorArray, ValidationResult } from './validate';
export declare abstract class ElementBase<T> extends ValueAccessorBase<T> {
    validators: ValidatorArray;
    private asyncValidators;
    protected abstract model: NgModel;
    constructor(validators: ValidatorArray, asyncValidators: AsyncValidatorArray);
    protected validate(): Observable<ValidationResult>;
    get invalid(): Observable<boolean>;
    protected get failures(): Observable<Array<string>>;
}
