import { ChainsCollection, ITwoStrandedChainItem } from "../../../../domain/entities/monomer-chains/ChainsCollection"; import { BaseMonomer, Vec2 } from "../../../../domain/entities"; import { IBaseRenderer } from "../BaseRenderer"; import { Chain } from "../../../../domain/entities/monomer-chains/Chain"; import { SubChainNode } from "../../../../domain/entities/monomer-chains/types"; import { RestoreSequenceCaretPositionOperation } from "../../../editor/operations/modes"; import { Command } from "../../../../domain/entities/Command"; import { SequenceViewModel } from "./SequenceViewModel/SequenceViewModel"; import { SequenceViewModelChain } from "./SequenceViewModel/SequenceViewModelChain"; declare type BaseNodeSelection = { nodeIndexOverall: number; isNucleosideConnectedAndSelectedWithPhosphate?: boolean; hasR1Connection?: boolean; }; export declare type NodeSelection = BaseNodeSelection & { node: SubChainNode; twoStrandedNode?: ITwoStrandedChainItem; }; export declare type TwoStrandedNodeSelection = BaseNodeSelection & { node: ITwoStrandedChainItem; }; export declare type TwoStrandedNodesSelection = TwoStrandedNodeSelection[][]; export declare type NodesSelection = NodeSelection[][]; export declare class SequenceRenderer { private static caretPositionValue; private static lastUserDefinedCaretPositionValue; private static chainsCollectionValue; private static lastChainStartPositionValue; private static sequenceViewModelValue; private static newSequenceButtons; static get caretPosition(): number; private static set caretPosition(value); static get lastUserDefinedCaretPosition(): number; private static set lastUserDefinedCaretPosition(value); static get chainsCollection(): ChainsCollection; private static set chainsCollection(value); static get lastChainStartPosition(): Vec2; private static set lastChainStartPosition(value); static get sequenceViewModel(): SequenceViewModel; private static set sequenceViewModel(value); static show(chainsCollection: ChainsCollection, chainBeforeNewEmptyChainIndex?: number): void; private static setCaretToLastNodeInChain; static removeNewSequenceButtons(): void; private static addNewEmptyChainIfNeeded; private static showNodes; static getNextChainPosition(currentChainStartPosition?: Vec2, previousChainLength?: number): Vec2; private static showBonds; static setCaretPosition(caretPosition: number): void; static rerenderCaret(): void; static forEachNode(forEachCallback: (params: { chainIndex: number; chain: SequenceViewModelChain; nodeIndex: number; nodeIndexOverall: number; twoStrandedNode: ITwoStrandedChainItem; }) => void): void; static setCaretPositionBySequenceItemRenderer(sequenceItemRenderer: IBaseRenderer): void; static setCaretPositionByMonomer(monomer: BaseMonomer): void; static setCaretPositionNextToMonomer(monomer: BaseMonomer): void; static setCaretPositionByNode(nodeToCompare: ITwoStrandedChainItem): void; static getMonomersByCaretPositionRange(startCaretPosition: number, endCaretPosition: any): BaseMonomer[]; static resetLastUserDefinedCaretPosition(): void; private static get nodesGroupedByRows(); private static getNodeIndexInRowByGlobalIndex; private static get currentChainRow(); private static get previousRowOfNodes(); private static get nextRowOfNodes(); static moveCaretUp(): void; static moveCaretDown(): void; static moveCaretForward(): RestoreSequenceCaretPositionOperation; static moveCaretBack(): RestoreSequenceCaretPositionOperation; static get currentChainIndex(): number; static get lastNodeCaretPosition(): number | undefined; static getNodeByPointer(sequencePointer?: number): ITwoStrandedChainItem | undefined; static get currentEdittingNode(): ITwoStrandedChainItem | undefined; static get previousFromCurrentEdittingMonomer(): ITwoStrandedChainItem | undefined; static get currentChain(): Chain; static get previousChain(): SequenceViewModelChain; static get nextChain(): Chain; static getLastNonEmptyNode(chain: Chain): SubChainNode; static getLastNode(chain: Chain): SubChainNode; static get nextNode(): ITwoStrandedChainItem | undefined; static get previousNode(): ITwoStrandedChainItem | undefined; static get nextNodeInSameChain(): ITwoStrandedChainItem | undefined; static get previousNodeInSameChain(): ITwoStrandedChainItem | undefined; private static get nextCaretPosition(); static get previousCaretPosition(): number | undefined; static get lastChain(): Chain; static get lastChainLength(): number; static startNewSequence(indexOfRowBefore?: number): void; static getPreviousNodeInSameChain(nodeToCompare: ITwoStrandedChainItem): ITwoStrandedChainItem | undefined; static getNextNodeInSameChain(nodeToCompare: ITwoStrandedChainItem): ITwoStrandedChainItem | undefined; static getPreviousNode(nodeToCompare: ITwoStrandedChainItem): ITwoStrandedChainItem | undefined; static getNextNode(nodeToCompare: ITwoStrandedChainItem): ITwoStrandedChainItem | undefined; static shiftArrowSelectionInEditMode(event: any): void; private static getShiftArrowChanges; static unselectEmptyAndBackboneSequenceNodes(): Command; static get selections(): TwoStrandedNodesSelection; static getRenderedStructuresBbox(): { left: any; right: any; top: any; bottom: any; width: number; height: number; }; static getRendererByMonomer(monomer: BaseMonomer): any; static showNewSequenceButton(indexOfRowBefore: number, width?: number): void; static isEmptyCanvas(): boolean; static get isCaretAtChainEnd(): boolean; static clear(): void; } export declare function sequenceReplacer(key: string, value: unknown): unknown; export {};