import { FieldValues, RegisterOptions, FieldPath, FieldPathValue } from 'react-hook-form';
import { FieldPathInternal, ArrayKey, InternalValidate } from './extend-react-hook-form.type';
export type Rules<TFieldValues extends FieldValues = FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> = Omit<RegisterOptions<TFieldValues>, 'valueAsNumber' | 'valueAsDate' | 'setValueAs' | 'disabled' | 'validate'> & {
    validate?: InternalValidate<FieldPathValue<TFieldValues, TFieldName>, TFieldValues> | Record<never, InternalValidate<FieldPathValue<TFieldValues, TFieldName>, TFieldValues>>;
};
export type FormValidations<TFieldValues extends FieldValues = FieldValues> = {
    [key in FieldPathInternal<TFieldValues, ArrayKey>]?: Rules<TFieldValues>;
};
