import { default as React } from 'react';

export declare function useForm<T extends object, V extends Record<keyof T, string> = Record<keyof T, string>>(initialState: T, validation?: {
    validationState?: V;
    validationCallback?: (values: T, errors: Record<keyof T, string>) => typeof errors;
}): {
    values: T;
    errors: Record<keyof T, string>;
    setValue: <K extends keyof T>(key: K, value: T[K]) => void;
    setValues: React.Dispatch<React.SetStateAction<T>>;
    reset: () => void;
    setErrors: React.Dispatch<React.SetStateAction<Record<keyof T, string>>>;
    valid: boolean;
    setError: <K_1 extends keyof V>(key: K_1, value: V[K_1]) => void;
    resetErrors: () => void;
    validate: () => boolean;
};
