import * as React from 'react'; import * as ace from 'brace'; import { AceSession, UserModel } from '@amalto/typings'; import 'brace/ext/searchbox'; import 'brace/mode/csharp'; import 'brace/mode/dockerfile'; import 'brace/mode/groovy'; import 'brace/mode/html'; import 'brace/mode/java'; import 'brace/mode/javascript'; import 'brace/mode/json'; import 'brace/mode/typescript'; import 'brace/mode/tsx'; import 'brace/mode/xml'; import 'brace/mode/sql'; import 'brace/theme/ambiance'; import 'brace/theme/chaos'; import 'brace/theme/chrome'; import 'brace/theme/clouds'; import 'brace/theme/clouds_midnight'; import 'brace/theme/cobalt'; import 'brace/theme/crimson_editor'; import 'brace/theme/dawn'; import 'brace/theme/dracula'; import 'brace/theme/dreamweaver'; import 'brace/theme/eclipse'; import 'brace/theme/github'; import 'brace/theme/gob'; import 'brace/theme/gruvbox'; import 'brace/theme/idle_fingers'; import 'brace/theme/iplastic'; import 'brace/theme/katzenmilch'; import 'brace/theme/kr_theme'; import 'brace/theme/kuroir'; import 'brace/theme/merbivore'; import 'brace/theme/merbivore_soft'; import 'brace/theme/mono_industrial'; import 'brace/theme/monokai'; import 'brace/theme/pastel_on_dark'; import 'brace/theme/solarized_dark'; import 'brace/theme/solarized_light'; import 'brace/theme/sqlserver'; import 'brace/theme/terminal'; import 'brace/theme/textmate'; import 'brace/theme/tomorrow'; import 'brace/theme/tomorrow_night'; import 'brace/theme/tomorrow_night_blue'; import 'brace/theme/tomorrow_night_bright'; import 'brace/theme/tomorrow_night_eighties'; import 'brace/theme/twilight'; import 'brace/theme/vibrant_ink'; import 'brace/theme/xcode'; declare module CodeEditor { interface Props extends React.ClassAttributes { height?: React.ReactText; value: string; maxLines?: number | 'unlimited'; mode: string; moveToEndOfFile?: boolean; readonly?: boolean; displaySettings?: Settings; loadTime: number; forceSave?: boolean; resetTick?: number; aceSession?: AceSession; docId: string; userJson?: UserModel.JsonContent; editorOnChange?: (value: string, session?: AceSession) => void; saveSession?: (session: AceSession) => void; saveContent?: (session: AceSession) => void; saveMultipleContent?: (session: AceSession) => void; loadedCallback?: (editor: ace.Editor) => void; children?: React.ReactNode; key?: React.ReactText; ref?: React.Ref; } interface Settings { theme?: string; fontSize?: string; fontFamily?: string; showInvisibles?: boolean; showGutter?: boolean; showIndent?: boolean; wrap?: boolean; highlight?: boolean; marker?: Marker; } interface Marker { row: number; column: number; } } declare class CodeEditor extends React.Component { private _markerId; private _firstChangeTime; private _editorPanel; private _editor; private _clearTimeout; private _canUpdate; private _cursorLastPosition; constructor(props: CodeEditor.Props); render(): JSX.Element; componentWillMount(): void; componentDidMount(): void; componentWillUnmount(): void; shouldComponentUpdate(nextProps: CodeEditor.Props): boolean; componentDidUpdate(): void; focus(session: AceSession): void; private getMaxLinesValue; private setEditorDefaultLines; private resizeEditor; private setEditorSession; private getAceSession; private extractAceSession; private static restoreSession; private setEditorOptions; private isSessionSavable; private setKeyboardShortcuts; } export default CodeEditor;