/**************************************************************************** * Copyright 2021 EPAM Systems * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. ***************************************************************************/ import { Struct, Vec2 } from "../../domain/entities"; import { RaphaelPaper } from 'raphael'; import { ReStruct } from './restruct'; import { RenderOptions, ViewBox } from './render.types'; import { AttachmentPointName } from "../../domain/types"; import { KetMonomerClass } from "../formatters/types/ket"; import { RnaPresetComponentKey } from "../editor/shared/customEvents"; export declare type RnaComponentAtoms = Map; export declare type MonomerCreationState = { assignedAttachmentPoints: Map; potentialAttachmentPoints: Map>; problematicAttachmentPoints: Set; clickedAttachmentPoint?: AttachmentPointName | null; selectedMonomerClass?: KetMonomerClass | 'rnaPreset'; hasDefaultAttachmentPoints?: boolean; rnaComponentAtoms?: RnaComponentAtoms; isRnaPresetMode?: boolean; } | null; export declare class Render { skipRaphaelInitialization: boolean; readonly clientArea: HTMLElement; readonly paper: RaphaelPaper; sz: Vec2; ctab: ReStruct; options: RenderOptions; viewBox: ViewBox; private readonly userOpts; private oldCb; private scrollbar; private resizeObserver; private _monomerCreationState; constructor(clientArea: HTMLElement, options: RenderOptions, currentRender?: Render, reuseRestructIfExist?: boolean); observeCanvasResize: () => void; unobserveCanvasResize: () => void; updateOptions(opts: string): false | RenderOptions; selectionPolygon(polygon: Vec2[]): any; selectionLine(point0: Vec2, point1: Vec2): any; selectionRectangle(point0: Vec2, point1: Vec2): any; /** @deprecated recommend using `CoordinateTransformation.pageToModel` instead */ page2obj(event: MouseEvent | { clientX: number; clientY: number; }): Vec2; setZoom(zoom: number, event?: WheelEvent): void; private getCanvasSizeVector; resizeViewBox(): void; private zoomOnCanvasCenter; private zoomOnMouse; /** * @see https://developer.mozilla.org/zh-CN/docs/Web/SVG/Attribute/viewBox */ setViewBox(func: (viewBox: ViewBox) => ViewBox): void; setViewBox(viewBox: ViewBox): void; setMolecule(struct: Struct, forceUpdateWithTimeout?: boolean): void; update(force?: boolean, viewSz?: Vec2 | null): void; get monomerCreationState(): MonomerCreationState; set monomerCreationState(state: MonomerCreationState); }