import { Chain } from "./Chain"; import { AmbiguousMonomer, BaseMonomer, Chem, Peptide, Phosphate, RNABase, SubChainNode, Sugar, UnresolvedMonomer, UnsplitNucleotide } from "./.."; import { SequenceNode } from "./types"; import { BaseSubChain } from "./BaseSubChain"; export interface ComplimentaryChainsWithData { complimentaryChain: Chain; chain: Chain; firstConnectedNode: SubChainNode; firstConnectedComplimentaryNode: SubChainNode; chainIdxConnection: number; } export declare type GrouppedChain = { group: number; chain: Chain; }; export interface ITwoStrandedChainItem { senseNode?: SequenceNode; senseNodeIndex: number; chain: Chain; antisenseNode?: SequenceNode; antisenseNodeIndex?: number; antisenseChain?: Chain; } export declare class ChainsCollection { chains: Chain[]; get monomerToChain(): Map; get monomerToNode(): Map; rearrange(): void; add(chain: Chain): this; static fromMonomers(monomers: BaseMonomer[]): ChainsCollection; static getFirstMonomersInChains(monomers: BaseMonomer[], MonomerTypes?: Array): BaseMonomer[][]; private static getFirstMonomersInMiddleOfChains; get firstNode(): SubChainNode; private static getFirstMonomersInRegularChains; private static getFirstMonomersInCycledChains; private static getMonomerWithLowerCoordsFromMonomerList; get lastNode(): SubChainNode; get length(): number; forEachNode(forEachCallback: (params: { chainIndex: number; subChainIndex: number; nodeIndex: number; nodeIndexOverall: number; node: SubChainNode; subChain: BaseSubChain; chain: Chain; }) => void): void; private getFirstComplimentaryMonomer; private findCycledComplimentaryChains; getComplimentaryChainIfNucleotide(node: SubChainNode, monomerToChain: Map, monomerToNode: Map): { complimentaryChain: Chain | undefined; complimentaryNode: SubChainNode | undefined; }; private reorderChainsPutSenseChainOrderInAccordanceAntisenseConnection; getAllChainsWithConnectionInBlock(c: Chain): GrouppedChain[]; getComplimentaryChainsWithData(chain: Chain): ComplimentaryChainsWithData[]; }