/// <reference types="react" />
import { FieldState, ErrorValue } from '../../types';
interface UpdateErrorAction {
    type: 'updateError';
    payload: ErrorValue;
}
interface ResetAction {
    type: 'reset';
}
interface UpdateAction<Value> {
    type: 'update';
    payload: Value;
}
interface NewDefaultAction<Value> {
    type: 'newDefaultValue';
    payload: Value;
}
export declare function updateAction<Value>(value: Value): UpdateAction<Value>;
export declare function resetAction(): ResetAction;
export declare function newDefaultAction<Value>(value: Value): NewDefaultAction<Value>;
export declare function updateErrorAction(error: ErrorValue): UpdateErrorAction;
export declare type FieldAction<Value> = UpdateErrorAction | ResetAction | UpdateAction<Value> | NewDefaultAction<Value>;
export declare function reduceField<Value>(state: FieldState<Value>, action: FieldAction<Value>): {
    dirty: boolean;
    value: Value;
    touched: boolean;
    defaultValue: Value;
    error: string | undefined;
};
export declare function useFieldReducer<Value>(value: Value): [FieldState<Value>, import("react").Dispatch<FieldAction<Value>>];
export declare function initialFieldState<Value>(value: Value): FieldState<Value>;
export {};
