UNPKG

ketcher-core

Version:
56 lines (55 loc) 2.11 kB
import type { BaseSubChain } from "./BaseSubChain"; import type { BaseMonomer } from "../BaseMonomer"; import type { SubChainNode } from "./types"; import { Nucleoside } from "../Nucleoside"; import { Nucleotide } from "../Nucleotide"; import { MonomerSequenceNode } from "../MonomerSequenceNode"; import { EmptySequenceNode } from "../EmptySequenceNode"; import { LinkerSequenceNode } from "../LinkerSequenceNode"; import type { PolymerBond } from "../PolymerBond"; import { EmptySubChain } from "./EmptySubChain"; export declare class Chain { subChains: BaseSubChain[]; firstMonomer?: BaseMonomer; isCyclic: boolean; id: number; private nodesChanged; private nodesCache; private monomersCache; private bondsCache; constructor(firstMonomer?: BaseMonomer, isCyclic?: boolean); private recalculateNodes; private createSubChainIfNeed; private tryAddAsNucleosideOrNucleotide; private addAmbiguousMonomer; add(monomer: BaseMonomer): void; addNode(node: SubChainNode): this; private fillSubChains; get lastSubChain(): BaseSubChain; get nodes(): SubChainNode[]; get lastNode(): EmptySequenceNode | MonomerSequenceNode | Nucleoside | Nucleotide | LinkerSequenceNode | undefined; get lastNonEmptyNode(): SubChainNode | undefined; get firstSubChain(): BaseSubChain; get firstNode(): SubChainNode; get length(): number; get isEmpty(): boolean; get isAntisense(): boolean; forEachNode(callback: ({ node, subChain, }: { node: SubChainNode; subChain: BaseSubChain; nodeIndex: number; }) => void): void; forEachNodeReversed(callback: ({ node, subChain, }: { node: SubChainNode; subChain: BaseSubChain; nodeIndex: number; }) => void): void; static createChainWithEmptyNode(): { emptyChain: Chain; emptySubChain: EmptySubChain; emptySequenceNode: EmptySequenceNode; }; get isNewSequenceChain(): boolean; get monomers(): BaseMonomer[]; get bonds(): PolymerBond[]; }