import { type ReactElement, type ReactNode } from 'react';
import { type UseFormReturn } from '../../useForm';
import { FIELD_NAME } from '../constants';
import type { FormValues, ValidationFn } from '../types';
export type EditingFormProps<TValue = string> = {
    /**
     * Значение поля в форме редактирования.
     * Если в children строка или число, то это значение будет по умолчанию считаться initialValue
     */
    initialValue?: TValue;
    /**
     * Отображаемое значение
     */
    children: ReactNode;
    /**
     * Render-props для замены компонента поля формы
     */
    componentField?: (fieldProps: {
        name: typeof FIELD_NAME;
        control: UseFormReturn<FormValues>['control'];
        fullWidth: boolean;
        autoFocus: boolean;
    }) => ReactElement;
    /**
     * Функция валидации для редактируемого поля.
     */
    validate?: ValidationFn;
    /**
     * Функция, вызываемая при закрытии поповера
     */
    onClose: () => void;
    /**
     * Функция, вызываемая при отправке формы.
     * @param fieldValue - Значение поля.
     */
    onSubmit: (fieldValue?: TValue) => void | Promise<void>;
};
export declare const EditingForm: <TValue extends unknown = string>(props: EditingFormProps<TValue>) => import("react/jsx-runtime").JSX.Element;
