/** * Copyright (c) 2019 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author Alexander Rose */ import { Structure, Unit } from '../../../mol-model/structure.js'; import { ParamDefinition as PD } from '../../../mol-util/param-definition.js'; import { FeatureType, InteractionType } from './common.js'; import { InterContactsBuilder, IntraContactsBuilder } from './contacts-builder.js'; import { Features } from './features.js'; export declare const ContactsParams: { lineOfSightDistFactor: PD.Numeric; }; export type ContactsParams = typeof ContactsParams; export type ContactsProps = PD.Values; export interface ContactProvider

{ readonly name: string; readonly params: P; createTester(props: PD.Values

): ContactTester; } export interface ContactTester { readonly maxDistance: number; readonly requiredFeatures: ReadonlySet; getType: (structure: Structure, infoA: Features.Info, infoB: Features.Info, distanceSq: number) => InteractionType | undefined; } /** * Add all intra-unit contacts, i.e. pairs of features */ export declare function addUnitContacts(structure: Structure, unit: Unit.Atomic, features: Features, builder: IntraContactsBuilder, testers: ReadonlyArray, props: ContactsProps): void; /** * Add all inter-unit contacts, i.e. pairs of features */ export declare function addStructureContacts(structure: Structure, unitA: Unit.Atomic, featuresA: Features, unitB: Unit.Atomic, featuresB: Features, builder: InterContactsBuilder, testers: ReadonlyArray, props: ContactsProps): void;