import React from 'react';
import { ControllerProps } from 'react-hook-form';
import { FieldWrapperProps } from '@parlor/components/select-v4';
type TValues = Record<string, any>;
export type FormFieldProps<T extends TValues = TValues> = {
    [key: string]: any;
    /**
     * Field child element.
     */
    children: JSX.Element;
    /**
     * Field defaultValue.
     */
    defaultValue?: unknown;
    /**
     * deserialize value
     */
    deserializeValue?: (value: unknown) => unknown;
    /**
     * Field variant.
     */
    fieldVariation?: FieldWrapperProps['variation'];
    /**
     * Field FieldWrapper Props.
     */
    fieldWrapperProps?: Omit<FieldWrapperProps, 'label' | 'hint' | 'variation' | 'children'>;
    /**
     * Field hint.
     */
    hint?: FieldWrapperProps['hint'];
    /**
     * Field label.
     */
    label?: FieldWrapperProps['label'];
    /**
     * Field name.
     */
    name: ControllerProps<T>['name'];
    /**
     * Field    validation rules.
     */
    rules?: ControllerProps['rules'];
    /**
     * serialize value
     */
    serializeValue?: (value: unknown) => unknown;
    /**
     * Field validated.
     */
    validated?: boolean;
    /**
     * Field value checked param for checkbox.
     */
    valueChecked?: boolean;
};
declare function FormFieldInner<T extends TValues = TValues>({ children, label, hint, fieldVariation, name, rules, fieldWrapperProps, valueChecked, defaultValue, serializeValue, deserializeValue, ...restProps }: React.PropsWithChildren<FormFieldProps<T>>, ref: React.Ref<HTMLDivElement>): JSX.Element;
export declare const FormField: typeof FormFieldInner;
export {};
