import { Extension } from '@codemirror/state';
import { ReactCodeMirrorRef } from '@uiw/react-codemirror';
import { HTMLAttributes } from 'react';
import { JsonSchema } from '../../../lib/json-schema';
export type CodeEditorLanguage = 'json' | 'markdown';
export declare const useCodemirrorTheme: () => Extension;
export type CodeEditorProps = {
    data?: Record<string, unknown> | Array<Record<string, unknown>>;
    value?: string;
    onChange?: (value: string) => void;
    showCopyButton?: boolean;
    className?: string;
    highlightVariables?: boolean;
    language?: CodeEditorLanguage;
    placeholder?: string;
    /** JSON Schema to enable variable autocomplete for {{variable}} placeholders (markdown only) */
    schema?: JsonSchema;
    autoFocus?: boolean;
    /** Show line numbers in the gutter (default: true) */
    lineNumbers?: boolean;
    /** When false, makes the editor read-only */
    editable?: boolean;
} & Omit<HTMLAttributes<HTMLDivElement>, 'onChange'>;
export declare const CodeEditor: import('react').ForwardRefExoticComponent<{
    data?: Record<string, unknown> | Array<Record<string, unknown>>;
    value?: string;
    onChange?: (value: string) => void;
    showCopyButton?: boolean;
    className?: string;
    highlightVariables?: boolean;
    language?: CodeEditorLanguage;
    placeholder?: string;
    /** JSON Schema to enable variable autocomplete for {{variable}} placeholders (markdown only) */
    schema?: JsonSchema;
    autoFocus?: boolean;
    /** Show line numbers in the gutter (default: true) */
    lineNumbers?: boolean;
    /** When false, makes the editor read-only */
    editable?: boolean;
} & Omit<HTMLAttributes<HTMLDivElement>, "onChange"> & import('react').RefAttributes<ReactCodeMirrorRef>>;
