import { FieldOptionsType, IField, MethodOptions, ValueType } from './types';
type FieldProps<T> = {
    value: T;
    onChange: (_: any, value: ValueType<T>) => void;
    onBlur: (_: any) => void;
    error?: string;
    disabled?: boolean;
};
export declare class FieldService<T = ValueType<unknown>, P extends FieldProps<T> = FieldProps<T>> implements IField {
    validate?: () => Promise<unknown>;
    _serviceType: string;
    private _initValue?;
    private _value?;
    private _error?;
    private _disabled;
    private _isBlurred;
    options?: FieldOptionsType<T>;
    constructor(initValue?: ValueType<T>, options?: FieldOptionsType<T>);
    get initValue(): ValueType<T>;
    set initValue(initValue: ValueType<T>);
    get value(): ValueType<T>;
    set value(value: ValueType<T>);
    get error(): string | undefined;
    set error(error: string | undefined);
    get disabled(): boolean;
    set disabled(disabled: boolean);
    get isValid(): boolean;
    get isInit(): boolean;
    get isBlurred(): boolean;
    set isBlurred(isBlurred: boolean);
    get isTouched(): boolean;
    setOptions: (options?: FieldOptionsType<T>) => void;
    setValue: (value: ValueType<T>, { validate }?: MethodOptions) => void;
    private onChange;
    onBlur: (_: any) => void;
    reset: () => void;
    setAsInit: () => void;
    touch: () => void;
    disable: () => void;
    enable: () => void;
    get props(): P;
}
export {};
