/** * Copyright (c) 2017-2025 Mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author David Sehnal * @author Alexander Rose * @author Yakov Pechersky */ import { Model } from '../../../../mol-model/structure/model/model.js'; import { Table } from '../../../../mol-data/db.js'; import { CustomPropertyDescriptor } from '../../../../mol-model/custom-property.js'; import { mmCIF_Schema } from '../../../../mol-io/reader/cif/schema/mmcif.js'; import { ElementIndex, ResidueIndex } from '../../../../mol-model/structure/model/indexing.js'; import { FormatPropertyProvider } from '../../common/property.js'; export interface StructConn { readonly data: Table; readonly byAtomIndex: Map>; /** Cantor pairs of residue indices that have a struct-conn record */ readonly residueCantorPairs: Set; readonly entries: ReadonlyArray; } export declare namespace StructConn { const Descriptor: CustomPropertyDescriptor; const Provider: FormatPropertyProvider; /** * Heuristic to test if StructConn likely provides all atomic bonds by * checking if the fraction of bonds and atoms is high (> 0.95). */ function isExhaustive(model: Model): boolean; function getAtomIndexFromEntries(entries: StructConn['entries']): Map; interface Entry { rowIndex: number; distance: number; order: number; flags: number; partnerA: { residueIndex: ResidueIndex; atomIndex: ElementIndex; symmetry: string; }; partnerB: { residueIndex: ResidueIndex; atomIndex: ElementIndex; symmetry: string; }; } function getEntriesFromStructConn(struct_conn: Table, model: Model): StructConn['entries']; }