import * as React from "react";
import type { TranslatableFieldProp } from "../../props/components/data-entry.prop.js";
export type { TranslatableValue, TranslatableLocaleProp, TranslatableFieldProp, TranslatableFieldProp as TranslatableFieldProps, TranslatableFieldControlProp, TranslatableInputProp, TranslatableInputProp as TranslatableInputProps, TranslatableTextareaProp, TranslatableTextareaProp as TranslatableTextareaProps, } from "../../props/components/data-entry.prop.js";
/**
* TranslatableField — the shared engine of {@link TranslatableInput}, {@link TranslatableTextarea}
* and `@godxjp/block-editor`'s `TranslatableRichText` (gh#1365): it owns the locale list, the active
* tab, the per-locale map, the fallback placeholder, the error marks and the FormField error report,
* and renders the ONE control in the panel through `renderControl`. Every prop it does not own is
* passed through to that control.
*
* WHY THE SWITCHER IS `Tabs`, NOT `Segmented`. The WAI-ARIA APG radio group is for CHOOSING A VALUE
* — a segmented control's choice is form state and is submitted with the form. The locale here is
* not form state: every locale's text is submitted together, and the switcher only decides which
* of them the one editing region shows. That is the APG tabs pattern — a tablist whose selected
* tab controls one tabpanel — so a screen reader announces "English, tab, 2 of 3" and the region
* that follows, instead of offering a "language" question the form never asks.
*
* ONE CONTROL, NOT ONE PER LOCALE. The panel holds a single control whose value, `lang` and
* placeholder follow the active tab (`Tabs.controls` points the tab at it, gh#1021). Swapping
* elements per tab would hand the forwarded `ref`, the FormField `id` and an IME composition to a
* new node on every switch.
*/
export declare function TranslatableField({ renderControl, toPlaceholder, value: valueProp, defaultValue, onValueChange, locales: localesProp, defaultLocale, fallbackLocale: fallbackLocaleProp, errors, size, placeholder, className, ...rest }: TranslatableFieldProp): React.JSX.Element;
/**
* TranslatableInput — ONE text field that holds a value per locale (`{ ja, en, vi }`), switched by
* locale tabs above it (gh#1336). The locale list and the first tab come from `AppProvider`
* `contentLocales` (gh#1347), the fallback from its `fallbackLocale`; each is overridable per field; an empty locale shows the fallback locale's text as
* its placeholder; a locale with an error is marked on its tab. Every other `Input` prop applies to
* the single control, and `ref` is that control's ``.
*/
export declare const TranslatableInput: React.ForwardRefExoticComponent & import("./translatable-input.js").TranslatableLocaleProp & React.RefAttributes>;
/** TranslatableTextarea — {@link TranslatableInput} over a `Textarea`; `ref` is the `