import { ValidateFnProp } from "./types";
export type InputState<TValue> = {
    value?: TValue;
    disabled: boolean;
    errors: string[];
    showErrors: boolean;
};
export type InputAction<TValue> = {
    type: "setValue";
    value: TValue;
} | {
    type: "setDisabled";
    disabled?: boolean;
} | {
    type: "validate";
    required?: boolean;
    validate?: ValidateFnProp<TValue>;
} | {
    type: "setShowErrors";
    showErrors: boolean;
} | {
    type: "reset";
    initialValue: TValue;
    initialDisabled: boolean;
};
export declare const inputReducer: <TValue>(state: InputState<TValue>, action: InputAction<TValue>) => InputState<TValue>;
