import { FocusEvent } from 'react';
import { FieldPath, FieldValues } from 'react-hook-form';
import { DateControlFieldValueFormat, DateControlFormValueFormat, FormDateControlErrorMessages, FormDateControlRules } from './types';
export declare const DATE_FORMAT_REGEX: RegExp;
export declare const VALID_DATE_REGEX: RegExp;
export declare const useDateControlRules: <TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>(customRules?: FormDateControlRules<TFieldValues, TName> | undefined, required?: boolean | undefined, minDate?: Date | undefined, maxDate?: Date | undefined, fieldValueFormat?: DateControlFieldValueFormat | undefined, formValueFormat?: DateControlFormValueFormat | undefined, errorMessages?: FormDateControlErrorMessages | undefined) => {
    validate: {};
    pattern?: import('react-hook-form').ValidationRule<RegExp> | undefined;
    onBlur?: ((event: any) => void) | undefined;
    onChange?: ((event: any) => void) | undefined;
    max?: import('react-hook-form').ValidationRule<string | number> | undefined;
    min?: import('react-hook-form').ValidationRule<string | number> | undefined;
    value?: import('react-hook-form').PathValue<TFieldValues, TName> | undefined;
    maxLength?: import('react-hook-form').ValidationRule<number> | undefined;
    minLength?: import('react-hook-form').ValidationRule<number> | undefined;
    required?: string | import('react-hook-form').ValidationRule<boolean> | undefined;
    shouldUnregister?: boolean | undefined;
    deps?: string | string[] | undefined;
};
interface DateControlFormEventHandlers {
    handleChange: (value: Date | null) => void;
    handleBlur: (event: FocusEvent<HTMLInputElement>) => void;
}
export declare const useDateControlFormEventHandlers: (formValueFormat: string, onChange: (value: Date | string | null) => void, onBlur: () => void) => DateControlFormEventHandlers;
export {};
