import { SimpleChanges } from '@angular/core';
import { AsyncValidatorFn, ControlContainer, ControlValueAccessor, FormControl, NgControl, Validator, ValidatorFn } from '@angular/forms';
import { Path } from '../crnk.expression';
export declare abstract class CrnkControl extends NgControl {
    /** @internal */
    _parent: ControlContainer;
    name: string;
    valueAccessor: ControlValueAccessor;
    /** @internal */
    _rawValidators: Array<Validator | ValidatorFn>;
    /** @internal */
    _rawAsyncValidators: Array<Validator | ValidatorFn>;
    protected _pathModel: Path<any>;
    /** @internal */
    protected _control: FormControl;
    /** @internal */
    protected _registered: boolean;
    protected viewModel: any;
    disabled: false;
    control: FormControl;
    readonly validator: ValidatorFn;
    readonly asyncValidator: AsyncValidatorFn;
    private _updateValue(value);
    ngOnChanges(changes: SimpleChanges): void;
    protected abstract _setUpControl(): void;
    private _updateDisabled(changes);
    abstract viewToModelUpdate(newValue: any): void;
}
