import React, { Component } from 'react'; import PropTypes from 'prop-types'; import CodeMirror from 'codemirror'; import { Base16Theme } from 'base16'; export interface EditorProps { value: string; mode: string; lineNumbers: boolean; lineWrapping: boolean; readOnly: boolean; theme?: Base16Theme; foldGutter: boolean; autofocus: boolean; onChange?: (value: string, change: CodeMirror.EditorChangeLinkedList) => void; } /** * Based on [CodeMirror](http://codemirror.net/). */ export default class Editor extends Component { cm?: CodeMirror.Editor | null; node?: HTMLDivElement | null; componentDidMount(): void; UNSAFE_componentWillReceiveProps(nextProps: EditorProps): void; shouldComponentUpdate(): boolean; componentWillUnmount(): void; getRef: React.RefCallback; render(): JSX.Element; static propTypes: { value: PropTypes.Requireable; mode: PropTypes.Requireable; lineNumbers: PropTypes.Requireable; lineWrapping: PropTypes.Requireable; readOnly: PropTypes.Requireable; theme: PropTypes.Requireable; foldGutter: PropTypes.Requireable; autofocus: PropTypes.Requireable; onChange: PropTypes.Requireable<(...args: any[]) => any>; }; static defaultProps: { value: string; mode: string; lineNumbers: boolean; lineWrapping: boolean; readOnly: boolean; foldGutter: boolean; autofocus: boolean; }; }