import * as monaco from 'monaco-editor/esm/vs/editor/editor.api'; import { FC } from 'react'; import { IRelation } from '../types'; export default class { fromEditor: monaco.editor.IDiffEditor; toEditor: monaco.editor.IDiffEditor; fromOriginalEditor: monaco.editor.ICodeEditor; toOriginalEditor: monaco.editor.ICodeEditor; fromModifiedEditor: monaco.editor.ICodeEditor; toModifiedEditor: monaco.editor.ICodeEditor; relations: IRelation[]; svgEl: SVGSVGElement; fromContainerDomNode?: HTMLElement; toContainerDomNode?: HTMLElement; options?: FC; private leftMiddleRightScrollTopMaps; private middleTop; private linkEl; constructor(fromEditor: monaco.editor.IDiffEditor, toEditor: monaco.editor.IDiffEditor, relations: IRelation[], svgEl: SVGSVGElement, { fromContainerDomNode, toContainerDomNode, options, }?: { fromContainerDomNode?: HTMLElement; toContainerDomNode?: HTMLElement; options?: FC; }); setRelations(relations: IRelation[]): void; scrollToRelation(id: string): void; getMiddleTopFromLeftTop(leftTop: number): number; private getRightTopFromMiddleTop; private syncEditor; private syncRelation; private initCreate; resize(): void; private onDidChangeCursorSelection; private onDidScrollChange; private onMouseWheel; renderLinks(): void; }