import { ReactNode } from 'react';
import { FieldPath, FieldPathValue, FieldValues, Validate, ValidationRule } from 'react-hook-form';
type PageFormTextInputBaseProps<TFieldValues extends FieldValues = FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TSelection extends FieldValues = FieldValues> = {
    id?: string;
    name: TFieldName;
    type?: 'text' | 'date' | 'datetime-local' | 'email' | 'month' | 'number' | 'password' | 'search' | 'tel' | 'time' | 'url';
    label?: string;
    labelHelpTitle?: string;
    labelHelp?: string | string[] | ReactNode;
    additionalControls?: ReactNode;
    placeholder?: string;
    button?: ReactNode;
    helperText?: string;
    isDisabled?: boolean;
    isReadOnly?: boolean;
    isRequired?: boolean;
    validate?: Validate<string, TFieldValues> | Record<string, Validate<string, TFieldValues>>;
    minLength?: number | ValidationRule<number>;
    maxLength?: number | ValidationRule<number>;
    min?: number | string;
    max?: number | string;
    pattern?: ValidationRule<RegExp>;
    selectTitle?: string;
    selectValue?: (selection: TSelection) => FieldPathValue<TSelection, FieldPath<TSelection>>;
    selectOpen?: (callback: (selection: TSelection) => void, title: string) => void;
    autoFocus?: boolean;
    defaultValue?: FieldPathValue<TFieldValues, TFieldName>;
    enableUndo?: boolean;
    enableReset?: boolean;
    shouldUnregister?: boolean;
    fullWidth?: boolean;
};
export type PageFormTextInputProps<TFieldValues extends FieldValues = FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TSelection extends FieldValues = FieldValues> = PageFormTextInputBaseProps<TFieldValues, TFieldName, TSelection> & ({
    type: 'password';
    autoComplete?: 'new-password' | 'current-password' | 'off';
} | {
    type?: 'text' | 'date' | 'datetime-local' | 'email' | 'month' | 'number' | 'search' | 'tel' | 'time' | 'url';
    autoComplete?: string;
});
export declare function PageFormTextInput<TFieldValues extends FieldValues = FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TSelection extends FieldValues = FieldValues>(props: PageFormTextInputProps<TFieldValues, TFieldName, TSelection>): import("react/jsx-runtime").JSX.Element;
export {};
