import { AbstractControl, ValidationError, ValidatorFn } from "./Form.types";
import { ObservableControl } from "./ObservableControl";
export type ControlListener<ValueType> = (control: AbstractControl<ValueType>) => void;
export declare class FormControl<ValueType> extends ObservableControl<ValueType> implements AbstractControl<ValueType> {
    private currentValue;
    private validationErrors;
    private touched;
    private readonly validators;
    private groupErrors;
    constructor(initialValue: ValueType, validators?: ValidatorFn<ValueType>[]);
    get value(): ValueType;
    markAsTouched(): void;
    get valid(): boolean;
    get errors(): ValidationError[];
    addGroupError(error: ValidationError): void;
    clearGroupErrorsByType(type: string): void;
    setValue(value: ValueType): void;
    validate(): void;
}
