import * as React from 'react'; import Editor from './components/Editor'; import './style.scss'; import FileTreeNode from './model/FileTreeNode'; import { CreateFileInfo, CreateFileResult } from './model/CreateFileInfo'; import AsyncCache from './model/AsyncCache'; import SourceDAO from './services/SourceDAO'; import CompileService, { CompileResult } from './services/CompileService'; import UIStateSnapshot from './services/UIStateSnapshot'; interface Props { onSave: (result: Array) => Promise>; getSource: (file: FileTreeNode | null) => Promise; createFile: (createFileInfo: CreateFileInfo) => Promise; files: Array; persistence?: AsyncCache; language?: string; onDelete: (files: Array) => Promise; renderLoading?: () => React.ReactNode; uiStateSnapshot?: UIStateSnapshot; initEditor: (editor: any, monaco: any) => void; } interface State { fileIndex: { [path: string]: FileTreeNode; }; files: Array; currentFile: FileTreeNode | null; currentMenuFile: FileTreeNode | null; tabItems: Array<{ label: string; value: string; }>; showSaveButton: boolean; saveStatus: string; changeList: Array; createFileType: 'file' | 'directory' | null; modalType: 'createFile' | 'createDirectory' | 'confirmClose' | 'confirmDeleteFile' | 'confirmDeleteDirectory' | 'alert' | null; modalExtension: any; } export default class ScriptEditor extends React.Component { editorInstance: Editor | null; sourceDAO: SourceDAO; editorInstanceId: string; compileService: CompileService; constructor(props: any); componentDidMount(): void; componentDidUpdate(prevProps: Readonly, prevState: Readonly, snapshot?: any): void; recoverUIState(): void; handleMenuItemClick: (file: FileTreeNode) => void; openFile: (code?: string | undefined) => void; showCloseFileConfirm: (value: any) => void; handleCloseTabMulti: (fileCodes: string[]) => void; closeTab: (fileCodes: string[]) => void; handleTabItemClick: (fileCode: string) => void; handleSaveAll: () => void; save: (fileCodes: string[]) => Promise; handleEditorChange: (source: any) => void; handleCreateFile: (file?: FileTreeNode | undefined) => void; handleCreateFolder: (file?: FileTreeNode | undefined) => void; closeDialog: () => void; getChangeList: () => string[]; handleSaveFileWhenCloseTab: () => void; discardChange: (files: FileTreeNode[]) => void; createFile: (name: string) => void; handleDeleteFile: (file: FileTreeNode) => void; deleteFile: (fileToDelete: FileTreeNode) => void; render(): JSX.Element; } export {};