import { RefObject } from 'react';
import { Extension, Text } from '@codemirror/state';
import { EditorView, ViewUpdate } from '@codemirror/view';
export declare class EditorApi {
    editor: EditorView;
    constructor(editor: EditorView);
    setValue(value?: string): void;
    getValue(): string;
}
interface CodeMirrorEditorProps {
    value?: string | Text;
    className?: string;
    editorRef?: RefObject<EditorApi | undefined>;
    extensions: Extension;
    onChange?: (update: ViewUpdate) => void;
    debounceTimeout?: number;
}
/**
 * The className is only used on the first rendering - the editor class will not be updated if the property changes
**/
export declare function CodeMirrorEditor({ onChange, value, className, editorRef, extensions, debounceTimeout }: CodeMirrorEditorProps): import("react/jsx-runtime").JSX.Element;
export {};
//# sourceMappingURL=CodeMirrorEditor.d.ts.map