import React from "react";
import { IDataDefinition } from "@appglue/common/dist/Common/Data/Definitions/IDataDefinition";
import { IDisplayModeValueEditor, IEditModeValueEditor, IValueEditorMode } from "./DataEditing/Common";
interface IXValueEditor {
    forData: IDataDefinition;
    value: any;
    onUpdate: (newValue: any) => void;
    mode: IValueEditorMode;
    navigate?: (direction: "Up" | "Down" | "Right" | "Left" | "Tab" | "Select") => void;
    editMode?: "inline" | "layer";
}
export declare function XValueEditor({ forData, value: propValue, onUpdate, mode, navigate, editMode }: IXValueEditor): JSX.Element | null;
interface IValueEditorRender extends IXValueEditor {
    editRenderUI: React.ForwardRefExoticComponent<React.PropsWithoutRef<IEditModeValueEditor> & React.RefAttributes<HTMLElement>>;
    displayRenderUI: (props: IDisplayModeValueEditor) => JSX.Element | null;
}
export declare const ValueEditorRender: React.ForwardRefExoticComponent<IValueEditorRender & React.RefAttributes<HTMLElement>>;
export interface IDisplayEditModeValueEditor {
    forData: IDataDefinition;
    value: any;
    onUpdate: (newValue: any) => void;
    mode: IValueEditorMode;
    editMode: "inline" | "layer";
    editRenderUI: React.ForwardRefExoticComponent<React.PropsWithoutRef<IEditModeValueEditor> & React.RefAttributes<HTMLElement>>;
    displayRenderUI: (props: IDisplayModeValueEditor) => JSX.Element | null;
}
export declare const DisplayEditModeValueEditorRender: React.ForwardRefExoticComponent<IDisplayEditModeValueEditor & React.RefAttributes<HTMLElement>>;
export {};
