import { InputWrapperProps, StackProps } from '@mantine/core';
import { editor as monacoEditor } from 'monaco-editor';
import { FunctionComponent } from 'react';
interface CodeEditorProps extends Omit<InputWrapperProps, 'inputContainer' | 'inputWrapperOrder' | 'classNames' | 'styles' | 'vars' | 'onChange'>, Omit<StackProps, 'onChange'> {
    /**
     * The language syntax of the editor
     *
     * @default 'plaintext'
     */
    language?: 'plaintext' | 'json' | 'markdown' | 'python' | 'xml' | (string & unknown);
    /** Default value for uncontrolled input */
    defaultValue?: string;
    /** Value for controlled input */
    value?: string;
    /** onChange value for controlled input */
    onChange?(value: string): void;
    /** Called whenever the search icon is clicked  */
    onSearch?(): void;
    /** Called whenever the copy icon is clicked */
    onCopy?(): void;
    /** Called whenever the code editor gets the focus */
    onFocus?(): void;
    /** Ref object that provides access to the editor's functionality */
    editorHandle?: React.MutableRefObject<monacoEditor.IStandaloneCodeEditor | null>;
    /**
     * The minimal height of the CodeEditor (label and description included)
     *
     * By default the CodeEditor is adjusted to fill its parent height.
     * In the case where the parent height is too short, it will use this value as minimum.
     *
     * @default 300
     */
    minHeight?: number;
    /**
     * The maximal height of the CodeEditor (label and description included)
     *
     * By default the CodeEditor is adjusted to fill its parent height.
     * In the case where the parent height would be too high for your liking, you can use this prop to set a maximum.
     */
    maxHeight?: number;
    disabled?: boolean;
    /**
     * Defines how the monaco editor files will be loaded.
     * Note that using `'local'` requires [some additional configuration](https://github.com/suren-atoyan/monaco-react#use-monaco-editor-as-an-npm-package).
     *
     * @default 'local'
     */
    monacoLoader?: 'cdn' | 'local';
    /**
     * Options to pass to the monaco editor.
     * Currently only supporting [`tabSize`](https://microsoft.github.io/monaco-editor/typedoc/interfaces/editor.IStandaloneEditorConstructionOptions.html#tabSize).
     *
     */
    options?: Pick<monacoEditor.IStandaloneEditorConstructionOptions, 'tabSize'>;
}
export declare const CodeEditor: FunctionComponent<CodeEditorProps>;
export {};
//# sourceMappingURL=CodeEditor.d.ts.map