import { EditorType } from "./editor.types"; import { IEditorEvents } from "./editorEvents"; import { BaseMode } from "./modes/internal"; import { BaseTool, Tool, ToolEventHandlerName } from "./tools/Tool"; import { IKetMacromoleculesContent, IKetMonomerGroupTemplate, KetMonomerClass } from "../formatters"; import { RenderersManager } from "../render/renderers/RenderersManager"; import { SequenceType, Vec2 } from "../../domain/entities"; import { BaseMonomer } from "../../domain/entities/BaseMonomer"; import { DrawingEntitiesManager } from "../../domain/entities/DrawingEntitiesManager"; import { MonomerItemType } from "../../domain/types"; import { HistoryOperationType } from './EditorHistory'; import ZoomTool from './tools/Zoom'; import { ViewModel } from "../render/view-model/ViewModel"; import { ToolName } from "./tools/types"; import { TransientDrawingView } from "../render/renderers/TransientView/TransientDrawingView"; interface ICoreEditorConstructorParams { ketcherId?: string; theme: any; canvas: SVGSVGElement; mode?: BaseMode; monomersLibraryUpdate?: string | JSON; monomersLibraryReplace?: string | JSON; } export declare const EditorClassName = "Ketcher-polymer-editor-root"; export declare const KETCHER_MACROMOLECULES_ROOT_NODE_SELECTOR: string; export declare const NATURAL_AMINO_ACID_MODIFICATION_TYPE = "Natural amino acid"; export declare class CoreEditor { events: IEditorEvents; ketcherId?: string; _type: EditorType; renderersContainer: RenderersManager; transientDrawingView: TransientDrawingView; drawingEntitiesManager: DrawingEntitiesManager; viewModel: ViewModel; lastCursorPosition: Vec2; lastCursorPositionOfCanvas: Vec2; private _monomersLibraryParsedJson; private _monomersLibrary; canvas: SVGSVGElement; ketcherRootElement: HTMLDivElement | null; drawnStructuresWrapperElement: SVGGElement; canvasOffset: DOMRect; ketcherRootElementBoundingClientRect: DOMRect | undefined; nextAutochainPosition?: Vec2; private libraryItemDragState; private libraryItemDragCancelled; theme: any; zoomTool: ZoomTool; private tool?; get selectedTool(): Tool | BaseTool | undefined; mode: BaseMode; private readonly previousModes; sequenceTypeEnterMode: SequenceType; private readonly micromoleculesEditor; private hotKeyEventHandler; private copyEventHandler; private pasteEventHandler; private keydownEventHandler; private contextMenuEventHandler; private readonly cleanupsForDomEvents; constructor({ ketcherId, theme, canvas, monomersLibraryUpdate, monomersLibraryReplace, mode, }: ICoreEditorConstructorParams); private resetCanvasOffset; private resetKetcherRootElementOffset; private initializeGlobalEventListeners; private readonly handleVisibilityChange; private readonly handleWindowBlur; private readonly handleWindowResize; private cancelActiveDrag; private clearSelectionAfterCopy; static provideEditorInstance(): CoreEditor; clearMonomersLibrary(): void; private setMonomersLibrary; updateMonomersLibrary(monomersDataRaw: string | JSON): void; get monomersLibraryParsedJson(): IKetMacromoleculesContent | null; get monomersLibrary(): MonomerItemType[]; checkIfMonomerSymbolClassPairExists(symbol: string, monomerClass: KetMonomerClass | 'rnaPreset' | undefined): boolean; checkIfPresetCodeExists(code: string): boolean; get defaultRnaPresetsLibraryItems(): IKetMonomerGroupTemplate[]; get isLibraryItemDragCancelled(): boolean; set isLibraryItemDragCancelled(value: boolean); cancelLibraryItemDrag(): void; private handleHotKeyEvents; private setupKeyboardEvents; private setupCopyPasteEvent; private setupHotKeysEvents; private setupContextMenuEvents; private onLayoutCircular; private subscribeEvents; getDataForAutochain(): { selectedMonomerToConnect: BaseMonomer | undefined; newMonomerPosition: Vec2; selectedMonomersWithFreeR2: BaseMonomer[]; selectedMonomers: BaseMonomer[]; }; private onRemoveAutochainPreview; private onPreviewAutochain; private onAutochain; private onPlaceRnaPresetOnCanvas; private onPlaceMonomerOnCanvas; private onPlaceAmbiguousMonomerOnCanvas; calculateAndStoreNextAutochainPosition(drawingEntitiesManagerOrMonomer: DrawingEntitiesManager | BaseMonomer): void; invalidateNextAutochainPositionIfNeeded(isRnaPreset?: boolean): void; private onEditSequence; private onEstablishHydrogenBondSequenceMode; private onDeleteHydrogenBondSequenceMode; private onTurnOnSequenceEditInRNABuilderMode; private onTurnOffSequenceEditInRNABuilderMode; private onChangeSequenceTypeEnterMode; private onChangeToggleIsSequenceSyncEditMode; private onResetSequenceSyncEditMode; private onCreateAntisenseChain; private onSelectMonomer; private onSelectRNAPreset; onSelectTool(tool: ToolName, options?: object): void; private onCreateBond; private onCancelBondCreation; private onSelectMode; setMode(mode: BaseMode): void; getAllAminoAcidsModificationTypesGroupedByNaturalAnalogue(): Record; private onModifyAminoAcids; get isSequenceMode(): boolean; get isSequenceEditMode(): boolean | undefined; get isSequenceEditInRNABuilderMode(): boolean | undefined; get isSequenceAnyEditMode(): boolean | undefined; onSelectHistory(name: HistoryOperationType): void; selectTool(name: ToolName, options?: any): void; get isHandToolSelected(): boolean; unsubscribeEvents(): void; get trackedDomEvents(): { target: Element | Document; eventName: string; toolEventHandler: ToolEventHandlerName; }[]; private isMouseMainButtonPressed; private domEventSetup; private updateLastCursorPosition; private useToolIfNeeded; private useModeIfNeeded; switchToMicromolecules(): void; private resetModeIfNeeded; switchToMacromolecules(): void; isCurrentModeWithAutozoom(): boolean; zoomToStructuresIfNeeded(): void; scrollToTopLeftCorner(): void; destroy(): void; } export {};