import { ErrorMessage } from './error-message.interface';
import { OnInit } from '@angular/core';
import { Base } from './base';
import { ControlValueAccessor, NgControl, ValidationErrors } from '@angular/forms';
export declare abstract class AbstractFormControl extends Base implements OnInit, ControlValueAccessor {
    abstract _defaultErrMsg: ErrorMessage;
    abstract label: string;
    disabled: boolean;
    errorMessage: ErrorMessage;
    _onChange: (_: any) => void;
    _onTouched: (_?: any) => void;
    ngOnInit(): void;
    abstract writeValue(value: any): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    setDisabledState(isDisabled: boolean): void;
    protected setErrorMsg(): void;
    /**
     * Register self validating method
     * @param control control directive
     * @param fn function for validating self
     */
    protected registerValidation(ngControl: NgControl, fn: ValidationErrors): Promise<NgControl>;
    private validateLabel;
}
