import type { D3SvgElementSelection } from '../../../render/types'; import type { BaseMonomer } from '../../../../domain/entities'; import type { PolymerBond } from '../../../../domain/entities/PolymerBond'; import { BaseRenderer } from '../BaseRenderer'; export declare class SnakeModePolymerBondRenderer extends BaseRenderer { readonly polymerBond: PolymerBond; private readonly editorEvents; private isSnakeBond; private selectionElement; private path; private previousStateOfIsMonomersOnSameHorizontalLine; private sideConnectionBondTurnPoint?; bodyElement?: D3SvgElementSelection; constructor(polymerBond: PolymerBond); get isSnake(): true; private get isHydrogenBond(); get rootBBox(): DOMRect | undefined; get width(): number; get height(): number; private get scaledPosition(); getSideConnectionEndpointAngle(monomer: BaseMonomer): number; moveSelection(): void; appendBond(rootElement: any): D3SvgElementSelection | undefined; appendSnakeBond(rootElement: any): D3SvgElementSelection | undefined; private appendSideConnectionBond; private getMonomerWidth; private getMonomerHeight; private get isSideChainLikeBackbone(); private updateSnakeBondPath; private isSecondMonomerTopRight; private isSecondMonomerBottomRight; private isSecondMonomerBottomLeft; private isSecondMonomerTopLeft; private isSecondMonomerLeft; private addLine; private addRandomLine; appendBondGraph(rootElement: any): D3SvgElementSelection | undefined; private appendRootElement; show(_theme?: unknown, force?: boolean): void; private get isSideConnectionBondDrawn(); drawSelection(): void; moveEnd(): void; private moveSnakeBondEnd; private moveGraphBondEnd; moveStart(): void; private moveSnakeBondStart; private moveGraphBondStart; protected appendHoverAreaElement(): void; appendHover(): void; removeHover(): string | D3SvgElementSelection; private calculateIsSnakeBond; remove(): void; }