import { HTMLProps, ReactNode } from 'react';
import { StorageKey } from '../modules/ModuleFE_LocalStorage.js';
import { ComponentSync } from '../core/ComponentSync.js';
import { TS_InputProps } from '../components/TS_Input/TS_Input.js';
import { InputType } from '../components/TS_Input/TS_BaseInput.js';
export type FieldEditorInputProps = Omit, 'onChange' | 'value' | 'onAccept' | 'type' | 'id'>;
export type EditorType = 'input' | 'textarea';
export type FieldEditorProps = {
isEditing: boolean;
value?: string;
editorType?: EditorType;
type: InputType;
storageKey: StorageKey;
inputProps?: FieldEditorInputProps;
labelProps?: HTMLProps | ((value: string) => ReactNode);
onAccept?: () => void;
onCancel?: () => void;
onBlur?: () => void;
id: string;
};
export declare class FieldEditor extends ComponentSync {
constructor(props: FieldEditorProps);
protected deriveStateFromProps(nextProps: FieldEditorProps): any;
onChange: (value: string) => void;
private renderInput;
renderArea: (value: string) => import("react/jsx-runtime").JSX.Element;
private renderLabel;
render(): string | number | boolean | Iterable | import("react/jsx-runtime").JSX.Element | null | undefined;
}