import { type ReactElement, type ReactNode } from 'react'; import { type UseFormReturn } from '../hooks'; import { type FIELD_NAME } from './constants'; import type { FormValues, ValidationFn } from './types'; export type EditableTextProps = { /** * Название класса, применяется к корневому компоненту */ className?: string; /** * Значение поля в форме редактирования. * Если в children строка или число, то это значение будет по умолчанию считаться initialValue */ initialValue?: TValue; /** * Если false, иконка редактирования не будет отображаться * @default true */ isShowIcon?: boolean; /** * Если true, будет отображаться лоадер */ isLoading?: boolean; /** * Отображаемое значение */ children: ReactNode; /** * Отображает иконку слева или справа от текста * @default right */ iconPosition?: 'right' | 'left'; /** * Render-props для замены компонента поля формы */ componentField?: (fieldProps: { name: typeof FIELD_NAME; control: UseFormReturn['control']; fullWidth: boolean; }) => ReactElement; /** * Функция валидации для редактируемого поля. */ validate?: ValidationFn; /** * Функция, вызываемая при отправке формы. * @param fieldValue - Значение поля. */ onSubmit: (fieldValue?: TValue) => void | Promise; }; export declare const EditableText: (props: EditableTextProps) => JSX.Element;