import { ReactNode } from 'react';
import { FieldPathByValue, FieldValues, Validate } from 'react-hook-form';
import { DataEditorLanguages } from '../../components/DataEditor';
export type PageFormDataEditorInputProps<TFieldValues extends FieldValues = FieldValues, TFieldName extends FieldPathByValue<TFieldValues, object | string | undefined | null> = FieldPathByValue<TFieldValues, object | string | undefined | null>> = {
    id?: string;
    name: TFieldName;
    label: string;
    labelHelp?: string | string[] | ReactNode;
    labelHelpTitle?: string;
    helperText?: string | undefined;
    additionalControls?: ReactNode;
    format: DataEditorLanguages | 'object';
    disableCopy?: boolean;
    disableUpload?: boolean;
    disableDownload?: boolean;
    disableExpand?: boolean;
    defaultCollapsed?: boolean;
    isRequired?: boolean;
    validate?: Validate<string, TFieldValues> | Record<string, Validate<string, TFieldValues>>;
    isReadOnly?: boolean;
    isArray?: boolean;
    defaultValue?: string | object;
    enableUndo?: boolean;
    enableReset?: boolean;
};
export declare function PageFormDataEditor<TFieldValues extends FieldValues = FieldValues, TFieldName extends FieldPathByValue<TFieldValues, object | string | undefined | null> = FieldPathByValue<TFieldValues, object | string | undefined | null>>(props: PageFormDataEditorInputProps<TFieldValues, TFieldName>): import("react/jsx-runtime").JSX.Element;
export declare function DataEditorButtons(props: {
    handleCopy: (() => void) | false;
    handleDownload: (() => void) | false;
    handleUpload: (() => void) | false;
    children?: ReactNode;
}): import("react/jsx-runtime").JSX.Element;
export declare function DataEditorActions(props: {
    handleCopy: (() => void) | false;
    handleDownload: (() => void) | false;
    handleUpload: (() => void) | false;
    language: string;
    setLanguage: (language: DataEditorLanguages) => void;
    children?: ReactNode;
}): import("react/jsx-runtime").JSX.Element;
export declare function valueToObject(value: string | object | undefined | null, isArray?: boolean): object;
export declare function objectToString(obj: object, language: DataEditorLanguages): string;
