import * as React$1 from 'react';
import * as RadixForm from '@radix-ui/react-form';

type FormFieldProps = RadixForm.FormFieldProps & {
    required?: boolean;
};
type FormLabelProps = RadixForm.FormLabelProps & {
    /** label의 타입을 지정  */
    variant?: 'title' | 'body' | 'caption';
};
interface FormItemProps extends FormFieldProps {
    children: React.ReactElement;
    label: string;
    labelVariant?: FormLabelProps['variant'];
    errorMessage?: string;
}
declare function FormItem({ label, labelVariant, children, errorMessage, ...fieldProps }: FormItemProps): React.JSX.Element;
declare const Form: {
    Root: React$1.ForwardRefExoticComponent<RadixForm.FormProps & React$1.RefAttributes<HTMLFormElement>>;
    Field: React$1.ForwardRefExoticComponent<RadixForm.FormFieldProps & {
        required?: boolean | undefined;
    } & React$1.RefAttributes<HTMLDivElement>>;
    Label: React$1.ForwardRefExoticComponent<RadixForm.FormLabelProps & {
        /** label의 타입을 지정  */
        variant?: "body" | "caption" | "title" | undefined;
    } & React$1.RefAttributes<HTMLLabelElement>>;
    Message: React$1.ForwardRefExoticComponent<RadixForm.FormMessageProps & React$1.RefAttributes<HTMLSpanElement>>;
    Control: React$1.ForwardRefExoticComponent<RadixForm.FormControlProps & React$1.RefAttributes<HTMLInputElement>>;
    Submit: React$1.ForwardRefExoticComponent<RadixForm.FormSubmitProps & React$1.RefAttributes<HTMLButtonElement>>;
    FormItem: typeof FormItem;
};

export { Form, type FormFieldProps, FormItem, type FormLabelProps };
