import * as React from 'react'; import { IDisposable, editor as Monaco } from 'monaco-editor'; import { File } from '@kui-shell/plugin-bash-like/fs'; import { Button, REPL, StringContent, ToolbarText, MultiModalResponse } from '@kui-shell/core'; import { Options as MonacoOptions } from '../../lib/defaults'; import '../../../web/css/static/theme-alignment.css'; import '../../../web/css/static/editor.css'; import 'monaco-editor/min/vs/editor/editor.main.css'; interface Props extends MonacoOptions { repl: REPL; content: StringContent; response: File | MultiModalResponse; willUpdateToolbar?: (toolbarText: ToolbarText, buttons?: Button[]) => void; } interface State { editor: Monaco.ICodeEditor; wrapper: HTMLDivElement; subscription?: IDisposable; toolbarText?: ToolbarText; catastrophicError: Error; } export default class Editor extends React.PureComponent { constructor(props: Props); static getDerivedStateFromError(error: Error): { catastrophicError: Error; }; componentDidCatch(error: Error, errorInfo: React.ErrorInfo): void; private static allClean; private static error; static getDerivedStateFromProps(props: Props, state: State): Partial; componentWillUnmount(): void; private destroyMonaco; private static onChange; private static subscribeToChanges; private static initMonaco; render(): JSX.Element; } export {};