import React from 'react';
import { ReactCodeMirrorProps, ReactCodeMirrorRef } from '@uiw/react-codemirror';
import { html } from '@codemirror/lang-html';
import { linter, lintGutter } from '@codemirror/lint';
type LanguageId = 'html' | undefined;
export type LanguageOptions<T> = T extends 'html' ? Parameters<typeof html>[0] : Record<string, never>;
export type CodeEditorProps<T extends LanguageId> = ReactCodeMirrorProps & {
    /**
     * The language of the editor
     */
    language?: T;
    /**
     * Options for the selected language
     */
    languageOptions?: LanguageOptions<T>;
    /**
     * Configuration for the lint gutter if a language is defined
     */
    lintGutterConfig?: Parameters<typeof lintGutter>[0];
    /**
     * Options for the linter if a language is defined
     */
    linterOptions?: {
        source: Parameters<typeof linter>[0];
        config?: Parameters<typeof linter>[1];
    };
};
type CodeEditorComponent = <T extends LanguageId>(props: CodeEditorProps<T> & React.RefAttributes<ReactCodeMirrorRef>) => React.ReactElement;
declare const _default: CodeEditorComponent;
export default _default;
