import React, { ChangeEvent } from 'react';
import * as react_hook_form from 'react-hook-form';
import { FieldError } from 'react-hook-form';

interface DateRangePickerInputProps {
    from: Date;
    to: Date;
}
type InputProps = {
    name: string;
    onChange: (e: ChangeEvent<HTMLInputElement>) => void;
    error?: boolean | string | {
        message?: string;
    } | null | undefined | FieldError;
    label?: string | null;
    placeholder?: string | undefined;
    value?: string | boolean | number | Date | Date[] | DateRangePickerInputProps;
    inputClassName?: string | null;
    labelClassName?: string | null;
    errorClassName?: string | null;
    prepend?: React.ReactNode | JSX.Element | null;
    prependClassName?: string | null;
    append?: React.ReactNode | JSX.Element | null;
    appendClassName?: string | null;
    disableShrink?: boolean;
    disabled?: boolean;
} & React.InputHTMLAttributes<HTMLInputElement>;

type PasswordInputProps = InputProps;
declare const PasswordInput: React.ForwardRefExoticComponent<{
    name: string;
    onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;
    error?: boolean | string | {
        message?: string;
    } | null | undefined | react_hook_form.FieldError;
    label?: string | null;
    placeholder?: string | undefined;
    value?: string | boolean | number | Date | Date[] | DateRangePickerInputProps;
    inputClassName?: string | null;
    labelClassName?: string | null;
    errorClassName?: string | null;
    prepend?: React.ReactNode | JSX.Element | null;
    prependClassName?: string | null;
    append?: React.ReactNode | JSX.Element | null;
    appendClassName?: string | null;
    disableShrink?: boolean;
    disabled?: boolean;
} & React.InputHTMLAttributes<HTMLInputElement> & React.RefAttributes<HTMLInputElement>>;

export { type PasswordInputProps, PasswordInput as default };
